1. Florent Cayré
  2. mercurial_server

Overview

HTTPS SSH

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.