A couple of weeks ago I decided to give git
a try, after this old post written by nud about using git-svn
to create a bridge between a project stored under a SVN repository and a git repository.
I’ve choosen Clutter mostly for these reasons:
- I wanted to create a distributed branch of Clutter in order to avoid huge commits after offline periods
- have a semi-private crack-powered tree for experimenting with some ideas without having to taint the SVN repository
- the number of revisions in the main repository is low (< 1000) so I could import the whole history in a reasonable amount of time
I fired in my terminal the git-svn
commands and less than ten minutes later I had a fully working git repository for Clutter, complete with history. What I liked from the very beginning were the lightweight branches git employs; you can have multiple branches inside the same work directory and you can switch between them with a single command. Actually, I found that having a single branch for each one of the changes and then merging them back into the main work branch is an incredibly natural way of dealing with the development of a project; it’s like having a locally distributed approach – which git makes it easier to adopt than, say, bazaar; the git-web interface is also really sweet, and much more useful than viewcvs alone (and, in many cases, of the viewcvs+bonsai coupling); finally, the speed factor is huge: each command, except for the cloning of a repository (which is something you end up doing just once anyway) is almost immediate.