[LLVMdev] git Status Update?
Joshua Cranmer
Pidgeot18 at gmail.com
Fri Sep 9 09:24:11 PDT 2011
On 9/8/2011 7:47 PM, Chris Lattner wrote:
> I don't see the conversion to Git actually happening until someone can
> clearly demonstrate a win for the open source project.
In my experience with Mozilla (which uses mercurial, not git, but the
principles are the same), moving to a DVCS has really changed the flow
of development. Over the past year or so, most of the development has
moved off of the trunk and into a large suite of project repositories:
the JS engine, build system, and others maintain their own repository
and merge them with the trunk around once a week. This makes it easier
to discover when checkins cause failures, and, more importantly, it
means that the main trunk has moved to a state where you no longer need
to check first that it actually builds before updating your local copy.
A think a lot of the arguments that people purport for git workflow is
actually the workflow that is used on GitHub, which is certainly not
necessary for a project. Mozilla still revolves a lot around
upload-and-download patches (mostly for review processes); we have also
taken advantage of the extensibility of modern DVCS's to be able to
integrate the "grab the patch on bug XYZ and apply it for review
testing." I would also point out the mercurial queues feature is
probably in part responsible for breaking down patches from large "fix
everything at once" to a series of much smaller partial and more atomic
rewrites, with all of the review and bisecting advantages it brings.
Using the repository to manage patches locals eases the cost of keeping
them up-to-date, since instead of getting patch rejections, you can use
$MERGE_PROGRAM to do a more interactive 3-way-merge.
Another advantage is the ability to bisect changes. The modern DVCS
provides good tools for automatic bisection to help pinpoint
regressions, something which is invariably going to occur in any large,
nontrivial project.
--
Joshua Cranmer
News submodule owner
DXR coauthor
More information about the llvm-dev
mailing list