mercurial server integration cube
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
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).
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.