Tuesday, April 28, 2009

Git and Mercurial

Source code control tools are just about the most important tool that a programmer uses, and over the years I've used many of them. Currently, I'm primarily using Perforce and Subversion, both of which are wonderful pieces of software that do many things very well.

The trendy thing nowadays, though, is what are called DVCS: Distributed Version Control Systems. Both Perforce and Subversion are centralized systems, meaning that there is a single master server which tracks the changes, and lots of clients, each of which interacts only with the server.

In the DVCS world, the two main systems are Git and Mercurial. Git is the "hottest" thing going in version control systems right now, and has all the attention. In fact, it was seeming to me that it was pretty much a done deal, and everybody was going to switch to Git, and Mercurial was doomed.

But then the other day I noticed that Google had decided to pick Mercurial. This is interesting for several reasons:
  • First, Google give some details about why they made this choice, which are interesting to read.
  • Second, it's Google, and so it automatically matters what they do. By themselves, this one decision may have just changed the world, and Mercurial may now be the system of choice.
In my spare time, I've been trying to learn about Git, prompted by my friend Gil, who has been teaching me some of the amazing things that Git can do. I've installed Git, and put some code into it, and tried a few things out, but haven't made a lot of progress (memo to self: need more spare time!).

But now, I think I'll stop focusing only on Git, and try to pay some attention to Mercurial too.

1 comment:

  1. The people at Google who wanted to throw some subversion into the source code control industry must perforce be mercurial gits.

    Or something like that.