[Dovecot] Mercurial repositories for ManageSieve and Sieve

Stephan Bosch stephan at rename-it.nl
Tue Jun 17 13:06:54 EEST 2008

Hello Dovecot users,

Recently I was asked to use Mercurial for the ManageSieve development
just like Dovecot. As a matter of fact I have been using Mercurial for
some time now. Now that I am back from a short and active vacation I am
ready to publish my repositories. The repositories are publicly
available at:


The -patch repositories are so-called Mercurial Queues (MQ)
repositories. This provides an easy (quilt-like) means to manage patches
over an upstream source repository like the one that exists for Dovecot.
The patches are managed in a repository called 'patches' below the .hg
directory in your main repository. Currently, these MQ repositories only
have the managesieve.patch witch is the actual patch I refresh and
release each time Timo makes a new Dovecot release.

The following command sequence shows how to incorporate the managesieve
patch repository in a freshly cloned dovecot-1.1 tree:

hg clone http://hg.dovecot.org/dovecot-1.1
cd dovecot-1.1
hg clone http://hg.rename-it.nl/dovecot-1.1-managesieve-patch .hg/patches
hg qpush

When updating the dovecot tree it is important to unapply all patches
before performing 'hg pull' on the dovecot tree:

hg qpop --all
hg pull
hg update
hg qpush

This otherwise results in a multi-head situation which can be resolved
using a 'hg rollback' or using 'hg qpop --all' afterwards, which should
gracefully clean up the situation (never merge the heads!).

Updating the patch repository works as follows:

hg qpop --all
hg -R .hg/patches pull
hg -R .hg/patches update
hg qpush

After 'hg qpush' the dovecot repository is patched and can be compiled
as explained for the normal patch method using the .diff.gz (don't
forget ./autogen.sh for compiling dovecot in a mercurial repository).

The actual ManageSieve implementation for Dovecot-1.1 is available as a
separate package and thus there exists a separate repository for it. Its
compilation is no different from the .tar.gz releases, except for the
fact that (just like for dovecot) ./autogen.sh needs to be executed
before configure.

The new (and highly experimental) Sieve implementation is available as
the dovecot-libsieve repository. It contains a README file that should
explain most of its features and the installation procedure. This is
currently still not release-ready and should not be used for any
important mail whatsoever. I publish this for people who want to test
and play around with it to provide feedback on early bugs and
(release-critical) missing features. The TODO and README files provide
an overview of my current progress towards a first release.




More information about the dovecot mailing list