Re: Distributed SCM in Gnome (Was: Git vs SVN (was: Can we improve things?))



Behdad Esfahbod <behdad behdad org> writes:

> On Tue, 2007-09-11 at 11:41 -0400, Bryan Clark wrote:
> > 
> > GNOME is not in need of a DSCM or any other kind of new SCM.  For
> > source control, SVN works fine, just like CVS worked fine. 
> 
> You probably have not used git-bisect before.  After you use it once,
> all you can do is regret all the time you've spent manually bisecting
> using CVS/SVN.  This even happened to me yesterday.  Bug 474897:

This is true. There are issues with git, most importantly that it was
written by someone for whom usability is not, um, a core competence,
but is has a couple of killer features over CVS/SVN:

* The abilty to commit offline

  This is important because it allows you to develop a new feature and
  actually commit the intermediate broken stages without inflicting
  them on the rest of the world. This means basically that you get the
  benefit of source control even when developing separate
  features. SVN branches in principle provide the same facility, but
  in practice people don't use them much because it's a Major Project
  to create them and merge them.

  It also means you can commit on a plane or when you otherwise don't
  have internet access, but this is only a minor benefit.

* Bisect, as Behdad says

There are also a couple of non-killer improvements:

* Performance: git is consistently fast; svn is slow.

* The git changelog shows the commit id, so you can very quickly get
  at the patch corresponding to a changelog entry. This is important
  because often you can guess from the ChangeLog what commit might
  have introduced a particular bug.

  In svn, as far as I know, you have to first "svn annotate" the
  ChangeLog, which takes forever, to get the revision, then issue some
  complex commandline to look at the actual patch. In git it's "git
  log", then "git show", and the response is instant.

  And of course, for distributions the ability to pick out patches for
  backporting is extremely useful.

Is switching to git worth the cost of having everybody learn a new,
different and fairly arcane system? I don't know, but note that the
"we just switched to SVN, let's not switch again" argument is a "sunk
cost" fallacy.

If switching to git is worthwhile, then it's worthwhile independently
of previous decisions.


Soren



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]