maintenance of mercurial repository sets made easy

It proposes two basic tools:

  • baseline declaration and maintenance using branches and tags
  • snapshoting of managed repositories at changeset level

A confman specification (including the baseline) is contained within the .hgconf file.

Example .hgconf file with two managed repositories:

[yams]
pulluri = http://hg.logilab.org/yams
layout = yams
track = yams-version-0.34.0

[logilab.common]
pulluri = http://hg.logilab.org/logilab/common
layout = logilab/common
track = stable
hgrc.paths.review = ssh://hg.logilab.org/review/confman/

The optional track attribute can point to a branch or tagname. This is how the baseline is declared.

Snapshoting is handled in .hgsnap files. These are populated with the hg snapshot command.

Example .hgsnap file (same format as the .hgsubstate of mercurial subrepositories):

07e945b806f5285535bf7882b8bf1003d01eb7ab logilab/common
60caa0a406438b322f752d96df59963eecd2e54a yams

list of commands:

clonemissing  clones the repositories declared in the ".hgconf" file that are
              not yet cloned
confcheck     check the ".hgconf" file for errors and warns of uncloned
              repositories
ensureconf    hg ensureconf clones (if needed), pulls and updates the managed
              repositories
followtracks  update repositories according to their "track" attribute if
              they have one
snapshot      record changeset ids of the managed repositories into the
              ".hgsnapshot" file
source repositoryconfman repository
test environmenttest env for confman
owned byacampeas
may be discussed onpython-projects
use licenseGPL
see also
hgview http://www.hgview.org/ qt4 and text based Mercurial log navigator