I'm definitely not saying that GIT doesn't scale. Actually Linux is FAR bigger 
than most Apache projects. 

BUT: it requires some different mindset! 


I remember well how I felt when switching from CVS to SVN and first saw the svn 
copy and svn mv stuff. I really felt this was a huge step back from CVS (and 
still feel that way for this very part). SVN did make some design decisions 
which are absolutely elegant, and for other cases just suck. With GIT it's the 
same! 


GIT is tremendously cool because you have all the history locally available. 
Also the merging and tree-ish stuff is really 1A.

I tried to sum up the pros and cons in the CouchDB wiki [2], but it basically 
boils down to the following difference:

*) SVN is file-oriented. All the history is bound to a file. If you rename the 
file on the filesystem, then SVN will loose all the history. But it's easy to 
move files and even directories around with svn mv and retain all the history.

*) GIT is repository oriented. All the history is just a diff applied to a 
previous state. It doesn't matter if code got moved between files or just 
rename a file - git will perfectly know what happened, because all changes are 
just diffs... Otoh, it's not possible to track/handle/change/move files without 
looking at the whole repository! It's therefor also not possible to maintain 1 
big fat repo for all ASF projects as we do in SVN.


As I said: it has both pros and cons, and people must choose wisely what they 
need.


LieGrue,
strub


[2] http://wiki.apache.org/couchdb/SVNvsGIT


>________________________________
> From: dsh <[email protected]>
>To: [email protected] 
>Sent: Sunday, November 27, 2011 9:05 PM
>Subject: Re: [DISCUSS] - OpenEJB to use Git (Fwd: [PROPOSAL] Wicket to use 
>Git@ASF)
> 
>I would even say just because Git doesn't scale as it looks like from
>what you've said doesn't mean DVCS as a concept doesn't scale in
>general.
>
>Cheers
>Daniel
>
>On Sun, Nov 27, 2011 at 9:02 PM, Romain Manni-Bucau
><[email protected]> wrote:
>> Personnaly i think DVCS are great for new, small and not very active
>> projects.
>>
>> I'm not sure of the gain for us (from a project point of view)
>>
>> - Romain
>>
>>
>> 2011/11/27 David Blevins <[email protected]>
>>
>>>
>>> On Nov 27, 2011, at 4:35 AM, Mark Struberg wrote:
>>>
>>> > * tags and branches are always repository-global! It's not possible to
>>> just tag a single subdirectory as you can do in SVN. You really need to
>>> know upfront how you will going to release your stuff later (all the
>>> modularisation thingy), because that's exactly the way you need to separate
>>> your repositories.
>>> >
>>> > * git does not support a real sparse checkout handling and
>>> git-submodules handling still sucks.
>>> >
>>> > * you cannot move a directory with all his history from one git repo to
>>> another one (e.g. sandbox to proper) if they don't have a common tree-ish
>>> ancestor.
>>>
>>> Disappointing.  We move stuff in and out of trunk all the time.  And as
>>> you point out on the Maven list, having a ton of tiny repos, some active
>>> some not, is really frustrating.  Reorganizing has serious consequences --
>>> dead repos, lost history, etc.
>>>
>>> The "one big ASF repo" that SVN offers is really elegant.  Git's pension
>>> to force you to split things up into tiny islands between which code cannot
>>> flow with history seems to eat away at some of the advantages Git brings.
>>>
>>> Are there plans in the Git roadmap to improve this?
>>>
>>> Why are people not holding their feet to the fire and making them fix such
>>> basic things?
>>>
>>>
>>> -David
>>>
>>>
>>
>
>
>

Reply via email to