[LLVMdev] git

Chris Lattner clattner at apple.com
Sat Jul 23 12:41:18 PDT 2011


On Jul 23, 2011, at 4:34 AM, Matthieu Moy wrote:

> Chris Lattner <clattner at apple.com> writes:
> 
>> I really do appreciate distributed VCS, but only as staging.
>> Incremental development is crucial for the project and "take this git
>> push with 100K of code" will never be acceptable.
> 
> Incremental development is probably promoted by DVCS far more than
> others. Your comment seems to imply that only the tip of each push is
> important. In the Git world, it usually isn't.
> 
> The flow promoted by Git is precisely to make sure each and every commit
> passes the tests. So, the granularity of "incremental development" is
> really the commit, not how often you merge.

Again, to reiterate, I don't care.

This model is based on the idea of some trusted maintainer doing code review of the branch and then pushing it to mainline as a huge batch when everything is happy and working.  This is fundamentally in tension with the LLVM model and I have no desire for us to switch.

-Chris

> 
> "git bissect" is a good illustration of this. It does not only bissect
> accross the mainline, but it does all along the DAG. For example, if you
> bisect a regression between linux-2.6.38 and linux-2.6.39, you may well
> end up with a guilty commit that was written long before linux-2.6.38,
> but merged in the window between 2.6.38 and 2.6.39.
> 
> In a world where only merges are important, it's acceptable to have a
> history like
> 
> merge feature A
>  +- start feature A
>  +- oops, typo
>  +- oops, forgot a svn add
>  +- continue feature A
>  +- oops, another fix in first commit
> merge feature B
> ...
> 
> With Git's best practice, you may have such history locally, but you
> should not push it as it is. You usually rework your history (things
> like "git rebase -i" are just great for that) to clean it up, and then
> have it accepted by upstream. Ideally, you make sur the testsuite passes
> for each commit before pushing.
> 
> If you like incremental development, you're going to love DVCS.
> 
> -- 
> Matthieu Moy
> http://www-verimag.imag.fr/~moy/




More information about the llvm-dev mailing list