* Tobias C. Rittweiler [2008-08-08 09:51+0200] writes:
Helmut Eller heller@common-lisp.net writes:
What do people think of switching from CVS to Mercurial[*] ?
Helmut.
I'd like to try that out now. My threshold of annoyance with CVS has filled up.
I think that we will not do a full switch very soon. We need to make a few smaller steps. The easiest for everyone, is probably to run a local hg repository for personal use and to commit to CVS from time to time.
To get started you can try my repo. Create a local copy with:
hg pull -v --remotecmd=~heller/bin/hg ssh://trittweiler@common-lisp.net/~heller/slime-hg slime-hg-local
I hope that I set the permissions correctly.
The Mercurial homepage[1] has links to tutorials and documentation. You might skim through the hgbook[2] a bit. The book is rather wordy. For everyday use, the documentation printed with the -h option is usually enough.
Unfortunately, nobody explains how to commit to CVS. In my setup I have 2 local repos: work and outgoing. In work I do my local hacking and I use outgoing before committing to CVS. outgoing is at the same time a CVS repo, i.e. I copied the CVS directory from the original CVS repo to outgoing.
The usual commit cycle is: cd work hg pull ssh://heller@common-lisp.net/slime-hg # get new changes from CVS ... merge conflicts ... ..frob stuff.. hg commit hg push -r tip ../outgoing cd ../outgoing cvs update hg up cvs commit
I have a script (see attachment) to automate the last few steps. To enable it, add the following to your ~/.hgrc
[extensions] slimecommit = .../slimecommit.py
Then you can commit multiple changes in a batch with
cd outgoing; hg slimecommit . 3587 3588 3589
The numbers are revisions to commit. The first number, 3587, must be the version which is in synch with CVS, otherwise the command fails.
No, this isn't pretty, but a start.
Helmut.
[1]http://www.selenic.com/mercurial/wiki/ [2]http://hgbook.red-bean.com/