[Openmcl-devel] How about Git?

mikel evins mevins at me.com
Sun Nov 29 13:57:42 PST 2015

> On Nov 29, 2015, at 3:42 PM, R. Matthew Emerson <rme at clozure.com> wrote:
>> On Nov 29, 2015, at 2:34 PM, Dmitry Igrishin <dfigrish at gmail.com> wrote:
>> Dear developers,
>> Whether time came to migrate to Git? Are there are any such intentions, or your are comfortable with SVN and it is not a subject
>> for discussion?
> Speaking for myself only, it's just not clear that a switch would be beneficial.  It seems like it would just be following a fashion trend.   But maybe I'm stupid and ugly. (cf. https://youtu.be/4XpnKHJAok8?t=487)
> We've been using Trac for tickets, and that works well with Subversion.  Subversion deals reasonably well with largish binary files (like bootstrapping heap images).  Our (ab)use of externals also gives us a way for users to get a working installation with a single command.
> I agree that git is very popular, and I know that many people find that github alone is a reason to use git.  But I like to host my own stuff, and I just can't see how a switch would improve the life of ccl hackers all that much.  Maybe I haven't yet seen the light.

There are benefits to using git and Github. You’re correct that it’s not a foregone conclusion that it would be an improvement, but there are differences, and some of the differences are at least possibly beneficial.

There are also costs, of course.

Among the benefits:

- git’s noticeably faster than Subversion for most common operations

- with Subversion if the net’s offline then so is revision control; with git you still have revision control even when your local machine can’t connect to anything else

- Github automatically gives you offsite backup. You still host your repo locally, you just get an offsite web-accessible mirror of it for free

Among the costs:

- git’s UI is less than ideal (and not particularly similar to svn’s)

- git has one or two ugly failure modes (for example, Google for “git no branch” to find discussions of how you can accidentally lose a commit in the limbo known as “no branch” and how to recover from it)

- git does not handle large binaries particularly well

- working with git requires an initial adjustment; the equivalent of checking out or checking in requires an extra step as compared to Subversion—for example, for “check in” you first “commit” (check your changes into the local repo), then you “push” (transmit the updates to any remote mirrors). This isn’t that complicated, but I’ve noticed several people having trouble with it at first.

More information about the Openmcl-devel mailing list