[webkit-dev] Should we consider switching to git over svn?

Oliver Hunt oliver at apple.com
Mon Oct 8 23:30:20 PDT 2007


The average user uses update-webkit + some manual work, svn-create- 
patch, svn-apply-patch

Behind the scenes these do, svn up, svn diff + some magic, patch + magic

Under git they would be
git fetch && git rebase origin/master + unfortunately some manual  
work (described below)
git diff master + some magic
patch + magic

when svn and git hit conflicts they both require manual work, with  
svn you do fix the conflict and tell svn that you're done with svn  
resolved <file>
with git you have either git-mergetool, which will open a file diff  
utility for each file with a conflict, or you can merge manually, and  
use git add

What makes this simple, single branch development more tricky with  
git is that git has the idea of local history, so it is necessary to  
commit locally prior to updating, and then extra work is needed if  
you want to retain a single patch for the final commit.  We would  
need to work out what the standard workflow should be in this mode.

So it is more difficult when doing simple single branch development,  
but not insurmountably so, it gets more copmlicated once you start  
dealing with many branches but that's not something you can do with  
svn even if you wanted to.

--Oliver

On Oct 8, 2007, at 10:48 PM, Brady Eidson wrote:

> I think a 100% firm prerequisite is concise, precise, and novice- 
> level instructions on exactly how to use git in the context of  
> WebKit development.
> As someone who has been living on git for a few weeks, I find many  
> of the conveniences to be great, and it is obviously very powerful.
> But "steep learning curve" is an understatement - more like "throw  
> out your CVS and SVN experience, and relearn version control"
>
> The potential is great, but think of the prospective developers who  
> are already (sadly) frustrated by the relatively tame learning  
> curve of SVN.
>
> ~Brady
>
> On Oct 8, 2007, at 9:29 PM, Oliver Hunt wrote:
>
>> In recent weeks/months a number of webkit developers have started  
>> using Git for day to day development, and have found it very  
>> useful.  Git is yet another revision control system, but unlike  
>> RCS's such as cvs and svn it allows local branches and makes  
>> merging branches much easier.  In addition to making bracnhes much  
>> more manageable, it has a few other advantages:
>>  * Speed: Git is much faster than svn (which becomes very valuable  
>> on windows,
>>  * History: Git's history is much nicer than that of svn,  
>> especially with regards to patches submitted by people without  
>> commit rights, as it is able to distinguish the author of a patch  
>> from the person who committed it.
>>  * Collaboration:  It is possible for people to publish their git  
>> tree's in a way that allows them to be tracked by others, allowing  
>> people to collaborate on bugs and/or features much more easily  
>> without actually committing to a central repository.
>>
>> Unfortunately, git is still not as user friendly as svn, and has a  
>> relatively steep learning curve (largely due to it using some  
>> similar commands to svn for completely different purposes :-/ )
>>
>> On the other hand, those of us using git currently have to use the  
>> git-svn bridge which, while functional, is somewhat slow.  I think  
>> (and i'm hoping others agree) that despite the slightly more  
>> complex interface the improved merging, branching, and speed mean  
>> that we should seriously consider switching to git as our primary  
>> RCS.
>>
>> Any comments from others are welcome.
>>
>> --Oliver
>> _______________________________________________
>> webkit-dev mailing list
>> webkit-dev at lists.webkit.org
>> http://lists.webkit.org/mailman/listinfo/webkit-dev
>




More information about the webkit-dev mailing list