Sunday, August 02, 2009

Introducing Cq

Cq ( Commit Queue ) is a bridge between Mercurial and Subversion. Its whole objective is to allow you to work offline on Subversion repositories, but continue doing atomic commits. Useful when you are on the move and don't have internet access.

The premise is that you copy the working copy into a Mercurial repository. Hack away in the repository, and commit to the repository. Once you are back online, run cq commit to actually commit the changes to the Subversion repository. So it keeps track of commit messages and diffs using Mercurial hooks.

This is not stable software yet, and shouldn't be used for critical code. That said, it definitely won't delete any code unless you tell it to. I also have no idea how this will interact with mercurial branches or some uncommon svn operations. Get it from Bitbucket and read the README to use Cq. You can fork it or send patches or feature requests on Bitbucket or email.

(KDE folks might be interested in this)


  1. Couldn't this be done with hgsubversion? It's a bidirectional bridge between Subversion and Mercurial.

  2. Tools like hgsubversion pull entire histories from the repository. That takes excessively long times on slow connections. Cq only copies existing working copies, without requiring network access. I don't really require logs and annotates all the time., but I do want to keep my commits atomic, thats why I made Cq.