[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