cormander

yet another linux engineer

Jun

5

My revision of revision control

By cormander

For the first few years of my carrier my form of revision control was “make a backup of it every now and then” which obviously has its flaws. I struggled to get familiar with CVS without much success; it seemed that every time I sat down to try to learn it, I ended up doing something else.

Same story when I tried to learn subversion instead – I for some reason had a hard time wrapping my brain around it. It wasn’t until a year ago that when I was required to use subversion for a job that I got anywhere with it. It seems that money is plenty of motivation to finally grasp something you’ve been mentally putting off ;)

Both subversion and CVS are classified as a client/server revision control system; I’ll spare you my opinion of it. My friend Tim Post introduced me to the world of “distributed” version control not too long ago with a tool called mercurial. I instantly fell in love with it – the ability to track changes in your own local repo and then later push and merge upstream was all I ever dreamed for. This certainly would have solved a lot of problems we had at my last job while using subversion.

I have heard of git before but never really paid much attention to what it was. It wasn’t until after my discovery of mercurial that I payed enough attention to figure out what git was – another distributed revision control system. It was originally coded by Linus Torvalds to maintain the Linux kernel code, but is available for any project you wish to manage.

I’ve wanted to get into linux kernel development for some time now – but haven’t really been very serious about it. Since I’ve now been familiar with mercurial I decided to give git a spin to see how it was in comparison. At first I was turned off by how much more complicated git was, but used it anyway to track my changes to the linux kernel, since that’s what git was made for. This past week it has grown on me. It didn’t take long before I decided that I’ll use it on everything, unless that project is already on mercurial.

Here is a link to my git repository. Right now it just has my grsecurity kernel tree with a few days of history on it, but I plan on putting everything I got into it (except SRCE, since that’s already under mercurial and controlled by Tim Post).

Comments are closed.