[LLVMdev] git Status Update?

Óscar Fuentes ofv at wanadoo.es
Thu Sep 8 19:09:13 PDT 2011

Chris Lattner <clattner at apple.com> writes:

> You need to separate "what is good for David" from "what is good for
> the project".  Encouraging decentralized development and long-lived
> branches is not actually in the best interest of the project.
> I agree that there are some (quite minor IMO, like offline commits)
> advantages that git can provide over SVN for the preferred llvm
> development workflow.

You need to separate "what is good for Chris" from "what is good for the
project" :-)

Offline commits are useful for Chris when he is on a place without
internet access. But offline commits are a godsend for people who still
have no commit rights or for developers who are conducting a series of
"what if" experiments.

But whatever. Evaluating one feature at a time from our personal
experiences or prejudices is wrong, wrong, wrong. What matters is the
big picture and how it fits the whole project, taking into account
current and potential contributors. The transition from svn to git is a
*social* evolution, not merely a technical one like the migration from
cvs to svn was. The convenience of committing while you are in a plane
is insignificant compared with the impact such social change can have on
the project.

> However, there are also large costs to switch (both in terms of
> effort, but also in terms of forcing lots of people to learn new
> things) and the result is going to be *worst* in as many places as it
> is better.

How do you know this? How much experience do you have with this kind of
transitions? (No, cvs -> svn doesn't count, see above)

> I don't see the conversion to Git actually happening until someone can
> clearly demonstrate a win for the open source project.

A really interesting path is one that starts by explicitly stating the
fundamentals of LLVM project development. Things like release-level code
quality at all times combined with fast and smooth development,
etc. Let's put aside the policies you implemented for achieving the
fundamental goals, which are conditioned by the tools you had at the
time you stated them. If you wish, bring those policies up for critical
review compared with the possibilities provided by the new tool, but at
a later point on the discussion.

More information about the llvm-dev mailing list