Playing with Git - but not gonna switch

I’ve been using subversion for backing up and keeping track of internal and small (1-8 developers) projects for what seems a very long time.

After hearing all the “religious debates” about how some claim subversion is “broken”, and Git is “all that”, I took a few hours to play with it.

First, installation was a pain. On my CentOS server, “yum install” just didn’t do anything. After fighting a bunch of dependency issues, adding a new repository and actually upgrading the server (it was probably easier than that … but sometimes you just get stuck in an endless chain not-so-politely known as “rpm hell”).

Then it worked … mostly. I was finally able to get the WebDAV working from my local box to the server (not so hard, really), but found that WebDAV really doesn’t work, as it doesn’t update the repository meta data, and requires a seperate command to be run to update after a “push”. And no, I’m not adding a bunch of shell accounts on the dev server and opening the ssh ports on the firewall (which has to be done per IP, due to security policies) for ssh+git access.

I then checked some stuff out on the server, and got a shock - the local client RPM wasn’t compiled with “CURL MULTI”, so it couldn’t do anything remote … which really sucks.

I guess to really test it out, I need to compile from source … but I got enough of a feel, that I’m not going to take that pain yet (it works fine … even remotely … on my local FC8 box).

Git, for open source projects, is cool. It’s intuitive tagging / branching and distributed systems are cool, and I can see using it (and even hosting my own “forks” of stuff I’ve added) makes a lot of sense.

But for the way I abuse version control, subversion just works better.

First, I have a LOT of small projects, hosted in a few master repositories. I create a subversion based repository based on who needs access, and then place subprojects in there. Since I can check out any directory, that just just “works”. I cringe at splitting everything up into sub-projects .. and having to manage them.

Subversion tools — tortoise SVN, that even my wife and non technical business partners can use … are mature and easy to use. The Git tools (and Git is newer, so tools will get better) were built by geeks for geeks (which is great for us geeks, not so good for my wife.)

Git, on the other hand, is all or nothing …. you check out the entire repository, period. “subprojects”, which are really just references to other repositories, is a hack - just like “tags” in subversion is a hack (a copy of a directory that is still writeable the subversion recommends you do it is NOT a tag, even if you put some type of pre-commit script to make it “read only”). While I applaud the disk savings - especially for large projects - that just doesn’t affect me, where my total repository size is less than a gig for everything.

I do realize I abuse subversion .. and use it for everything from remote file management, to backups, to sharing documents _everything_ goes in the repository, not just the source code … so maybe the comparison isn’t 100% fair, but that’s what i like about subversion … I can use it for everything.

Bottom line is that subversion and git are very different tools for similar jobs, but they excel in very different areas. Git for larger, open source projects targetted at technical people - subversion for everything else.

0 comments ↓

There are no comments yet...Kick things off by filling out the form below.

Leave a Comment