Setting up a Repository
Note: This requires you to be logged in using the hosting account. It does not work with a user account.
Contents
Creating the Repository
First of all:
cd /cvsroot/hg
All Mercurial repositories are located in this directory.
The following instructions use newname for the name of the new repository.
Empty Repository
For a completely new and empty repository, simply do
hg init newname
Cloning an existing Repository
If you want to set up a repository that is a clone of an already existing repository (oldname), do
hg clone -U oldname newname
Note the -U (uppercase 'U') option. It creates a clone without checking out the files (as we don't need any checked-out files in a repository on this server).
Uploading an existing Repository
Use scp to upload an existing repository. You don't need to include the checked-out files, so you effectively only need the .hg directory. You could create a local clone using hg clone -U before the upload.
Setting the Permissions
The repository will now be owned by the current user and not be usable from any user account. Therefore, do this:
chmod -R g+rws newname
Ignore the "Operation not permitted" messages. Check that the permissions for the directory are now: drwxrwsr-x (note the 's').
Creating a hgrc file
Inside the newname/.hg/ directory, create a new file hgrc (no leading dot!) that contains this:
[trusted] users = geeklog2 groups = users [web] baseurl = http://project.geeklog.net/cgi-bin/hgweb.cgi style = gitweb contact = contact-us(AT)lists.geeklog.net description = (description goes here) name = (repository name goes here) allow_archive = gz
If the hgrc file already exists, remove whatever it contains (usually a [path] section) and start over fresh with the above content.
Obviously, you should fill in something sensible for the description and the name!
The allow_archive setting is optional - it allows downloading the repository as a .gz file.
Hooking it up with the Repository Viewer
- Open the file ~/public_html/www/cgi-bin/hgweb.config
- Add a line
newname = /cvsroot/hg/newname
- Call up the viewer and check that the new repository is listed.