[bt-devel] Misgivings about git (and Gitorious)

Raoul Snyman raoul.snyman at saturnlaboratories.co.za
Thu Aug 19 10:21:32 MST 2010


Hi folks,

I've voiced this a bit in the channel, but I thought I might bring it up for 
discussion here, as I know I'm not the only one who is not convinced of our 
move to git, and there may be more.

Let me prefix this by saying that I am coming from (and comparing to) bzr and 
Launchpad. Those are the tools I currently know best. I have also used 
Subversion and CVS.

Gitorious looks great. Nice design, lots of projects use it, including some 
major ones like Qt. However, there are a couple of small things that are 
"missing" when I compare it with Launchpad.

For instance, if I want to join a team, I need to somehow contact one of the 
team's administrators, and ask them to add me. In Launchpad, I can simply 
click on a link that says, "join this team". Perhaps it's just a setting, but 
it would really lower the barrier to other developers joining our team.

Another thing I found was that Gitorious does not seem to have any 
documentation. I was wanting to find out how the merge request system works, 
but I couldn't find anything apart from a blog post announcing it's arrival, 
and a few blog posts complaining about it's limited capabilities (though, to 
be honest, I think Launchpad has those same limitations).

So far I've found git to be overly complicated for doing simple tasks, and 
inflexible to allowing me to use my normal workflow.

For instance, to simply develop in another branch, I have to do the following:

$ git branch feature1
$ git checkout feature1

If I then want to use another branch, or master, then I have to check it out 
before I can use it:

$ git checkout feature2

In bzr, for comparison, I can just branch it, and then use it. If I want to 
use another branch, no commands are necessary, I just do my development.

$ bzr branch trunk feature1

Another procedure I perform quite often is branching someone else's branch 
into my shared repository. In git, I need to do the following:

$ git remote add other http://url.to/git/repository
$ git remote update
$ git branch feature3
$ git checkout feature3

As opposed to bzr:

$ bzr branch http://url.to/feature3

In addition to this seemingly long-winded way of doing things, git doesn't 
have the concept of "each directory in it's own branch", which messes with my 
way of developing. I typically like to have multiple branches checked out at 
the same time, and work on a little here and a little there at the same time.

In bzr, I can simply open my IDE, reopen my project, and I'm good to go. In 
git, I have to first checkout the branch I want to work on, open my IDE, 
recreate a project (because projects are not stored in version control), and 
then I can start working on it.

I'm afraid I can't say I am very happy with git, it seems to make simple tasks 
complicated, and is not nearly as flexible as everyone says it is. Gitorious 
seems to be a good system, but lacks a few features I would expect of a system 
of it's calibre.

-- 
Raoul Snyman, B.Tech IT (Software Engineering)
Saturn Laboratories
m: 082 550 3754
e: raoul.snyman at saturnlaboratories.co.za 
w: www.saturnlaboratories.co.za 
b: blog.saturnlaboratories.co.za



More information about the bt-devel mailing list