Daily Archives: December 13, 2007

Distributed VCS: Mercurial

Lately, I’ve found myself using locally more and more Mercurial (a fast, lightweight Source Control Management system designed for efficient handling of very large distributed project). The reason is that I’ve been traveling a lot and meanwhile I had to play with some crazy ideas I had. And so far, I am very happy with it; even if I am missing a couple of things that would make it absolutely lovely (a decent Eclipse plugin, a GUI tool, etc.). So, if you know about such tools please let me know.

Yesterday, I have imported locally a CVS repository. Before doing it, I had to search a bit on how to do it, and below are the links that I’ve found interesting. I have ended by using the generic Tailor as I’ve used it before and it looked like the simplest setup.

Links

I had also to install cvs on my Mac machine. It comes inside the XCode app, but I didn’t want to have all those, so I have found a repository of cvs distros.

Configuration

If somebody wonders what configuration I have used with Tailor, here it is:

[projectname]
root-directory=~/workspace/
source=cvs:projectname
target=hg:projectname
subdir=projectname
verbose= True

[cvs:projectname]
start-revision = HEAD
repository=:pserver:anonymous@projectname.cvs.sourceforge.net:/cvsroot/projectname
module=projectname

[hg:projectname]

Basically, this configuration says: import the project called projectname from the CVS source detailed in configuration section [cvs:projectname] into a Mercurial targer (hg prefix) detailed in the configuration section [hg:projectname].

Concerns

Even if I am getting more and more familiar with Mercurial, there is one thing that concerns me a bit: as long as there is no remote replica of my repository, I still have to deal myself backing up the system. Mercurial repositories are self contained, so if you by mistake delete the workspace then all your work is gone. Forever. I am trying to figure out if there is an easy solution for this.

Posted by: Alex Popescu (aka the_mindstorm)

2 Comments

Filed under Tools