Knowledge Base

Using Mercurial

This article describes how to use the Mercurial version control system on A2 Hosting servers.

About Mercurial

The Python-based Mercurial version control system is installed on all A2 Hosting shared servers. Like other version control systems, Mercurial enables you to track multiple revisions of files and directories.

Creating a repository

To create a Mercurial repository, all you have to do is log in to your A2 Hosting account using SSH, and then type the following command:


Replace REPOSITORY with the name of the directory where you want to create the repository (if the directory does not already exist, the hg init command creates it).

Publishing a repository

You can publish your Mercurial repositories and make them available to others on the web. To do this, follow these steps:

  1. Log in to your account using SSH.
  2. Type the following command:
    cd ~/public_html/cgi-bin
  3. In the cgi-bin directory, create a file. Users will use this filename to access the repository, so you probably want to use a name related to the repository that you're publishing.
  4. Copy the following text and paste it into the file you just created:

    #!/usr/bin/env python
    # An example hgweb CGI script, edit as necessary
    # See also
    # Path to repo or hgweb config to serve (see 'hg help hgweb')
    config = "/home/USERNAME/REPOSITORY"
    # Uncomment and adjust if Mercurial is not installed system-wide:
    #import sys; sys.path.insert(0, "/path/to/python/lib")
    # Uncomment to send python tracebacks to the browser if an error occurs:
    #import cgitb; cgitb.enable()
    from mercurial import demandimport; demandimport.enable()
    from mercurial.hgweb import hgweb, wsgicgi
    application = hgweb(config)
  5. In the text that you just pasted into the file, replace USERNAME with your A2 Hosting account username, and replace REPOSITORY with the path to your repository.
  6. Save your changes to the file.
  7. At the command prompt, type the following command. Replace FILENAME with the name of the file that you created in step 3:

    chmod 755 FILENAME
  8. The repository is now accessible on the web at the URL, where represents your domain name, and FILENAME represents the name of the file you created in step 3. For example, to clone this repository, you would type the following command:

    hg clone

More Information