I've been meaning to switch away from CVS for a few years now, but I was
never sure what I wanted to switch to, so I kept delaying it. I finally
decided yesterday that Mercurial is pretty nice.
The Mercurial repository is available from http://hg.dovecot.org/ (has a
nice web interface). I wrote a small Mercurial mini-howto below. I'm not
a Mercurial expert yet, so if you know better ways to do some things
please let me know.
The CVS repositories will still exist for a while, but they won't be
updated anymore. If you notice the CVS being referenced somewhere (wiki,
docs, etc.) please let me know (or fix yourself in wiki).
1. Fetch the initial repository:
- ex. CVS HEAD: hg clone http://hg.dovecot.org/dovecot/
- ex. branch_1_0: hg clone http://hg.dovecot.org/dovecot-1.0/
- sieve plugin: hg clone http://hg.dovecot.org/dovecot-sieve-1.0/
The Sieve plugin currently works only with v1.0. I'll make a new
"dovecot-sieve" repository for CVS HEAD later.
2. Update the repository:
hg merge # only needed if you had done any changes
hg update # to actually see the pulled changes
All of this can be done with fetch extension. You can enable it by
adding to ~/.hgrc:
After that you can use "hg fetch" which does all the above 3 commands
(as far as I know, haven't really tried yet).
3. If you want to modify the sources, add your name to ~/.hgrc so it
goes nicely into changelogs:
username = Timo Sirainen <tss(a)iki.fi>
You're able to "hg commit" your own changes into your repository. If you
want to publish them, use "hg log" to see the changeset ID, and then use
"hg export changesetid" to get patch ("hg export tip" might work too if
you just want the last change(?)). You can then email the patch to
Dovecot mailing list to get it merged.
With CVS the ChangeLog file was updated every 15 minutes. Now the
ChangeLog file doesn't exist in the repository at all. Instead it's
generated with "hg log --style=changelog" when running "make dist".