[phobos] Switching to git

Lars Tandle Kyllingstad lars at kyllingen.net
Wed May 26 02:19:47 PDT 2010


Was: Re: [phobos] phobos commit, revision 1553


On Tue, 2010-05-25 at 09:32 -0500, Andrei Alexandrescu wrote: 
> I'd vote one up for git, but it won't fix the builds for us.


No, but it would have prevented the problems in the first place, because
people wouldn't commit their changes directly to 'trunk'.

When several people make several changes to the same codebase, it can be
hard to track down exactly which change caused an error.  In a project
like Phobos, where there is a lot of interdependence between modules, it
may even happen that an error is caused by a combination of different
changes made by different people.

And even when an error is tracked down, it may not be a trivial
operation to remove the bad code again if there have been a lot of
changes to trunk after the code was committed.

I'm guessing this hasn't been a problem so far due to the relatively low
number of Phobos developers.  But this seems to be changing now.

Like Steve points out, it would be possible to use branches and merging
when making changes.  There are some problems with this, though:

     1. dsource's ancient SVN server is terribly bad at merging.
     2. The branches/ directory would quickly become an unwieldly mess
        if a new branch is created for every little change.
     3. SVN doesn't really seem to be designed with such a decentralised
        coding model in mind.

git, on the other hand, is made for exactly this purpose.

With git, if I make a change to Phobos, I tell you guys: "Hey folks,
please pull this code from my repo and test it."  If there are no
problems with it, only then may it be included in the next release.  At
no point do I commit anything to trunk and say: "Hey folks, I've
*already* uploaded some not-completely-tested-nor-reviewed change to our
single, common codebase.  It may break stuff for everyone in ways I
hadn't thought of, but hey, there's only one way to find out."

Here are some more links for the curious:

        http://en.wikipedia.org/wiki/Distributed_revision_control_system
        http://en.wikipedia.org/wiki/Git_%28software%29
        
-Lars




More information about the phobos mailing list