Git Goodness

On the last few days I have been playing with software configuration management’s tool Git.

Git is different from the other OpenSource tools I have used. In my opinion CVS is old and ugly, Subversion born to be better than CVS (and I think it has succeeded), but Git didn’t aim to replace any of those tools, it was created by Linus Torvalds in order to fill his own needs. The project expanded and now you can do pretty much everything you can do with other tools.

Since Git follows a totally different approach there are some things where it shines, but obviously it’s not perfect.

A good thing about Git is that it’s more like a set of independent tools and you can join them in order to make interesting things as creating a tarball directly from an web repository. Also, creating and applying patches is very very easy (Linus uses that a lot). And switching to a different branch takes only a second; that’s due to the fact that Git makes a copy of the whole repository, so greping through the whole repository for some text in the log shouldn’t be a problem.

The thing that I liked the most about Git was gitweb. It’s a single CGI script that provides a sexy web interface to browse your repository. It’s easy to setup and maintain, and it looks great, it even has RSS feeds 🙂

I believe it’s important for OpenSource projects to have a central place where people can go and check what other people is doing. For example I usually go to the freedesktop’s Git repository, to check what’s new.

I have only done very basic things with Git, but so far I really like what I have seen. I recommend everyone to try it… if Linus did it (at least the fist versions), how bad could it be?