Summary
-------
mercurial server integration cube


Simple setup
------------

This is the simplest setup, with mercurial-server and the Cubicweb
application running on the same server.

* get and install mercurial-server::

      apt-get install mercurial-server

  Or from sources::

      hg clone http://hg.opensource.lshift.net/mercurial-server
      # remove installdoc from installfiles target of Makefile, then run (as root):
      # (files go to /etc/mercurial-server and /var/lib/mercurial-server)
      # (command line for debian-like systems, for redhat like, see official doc).
      make setup-adduser

  Official documentation can be found at http://www.lshift.net/mercurial-server.html
  and in the README file in the mercurial-server sources.

* login as the user running the Cubicweb app with the mercurial_server cube;
  make sure this user has a rsa ssh key in ~/.ssh/id_rsa.pub and run::

      sudo mkdir -p /etc/mercurial-server/keys/root/$USER
      sudo cp ~/.ssh/id_rsa.pub /etc/mercurial-server/keys/root/$USER
      sudo -u hg /usr/local/share/mercurial-server/refresh-auth


Basic usage
-----------

The user running the Cubicweb instance must have the SSH key registered in
mercurial-server configuration (see above) unlocked and available through an
SSH agent.

Run and connect to the web interface, and add a new mercurial-server repository.

You can clone it immediately, start coding and push it back to the server.

Your changes are integrated into the CW application on a regular basis through a
vcsfile cube recurring task (see [VCSFILE] check-revision-interval setting in
your all-in-one.conf).


Permission levels
-----------------

The 'deny', 'read' and 'write' permission levels are supported by all versions
of mercurial-server.  The 'publish' permission level is added by
https://bitbucket.org/lshift/mercurial-server/pull-request/2/add-support-for-phases.
