Mozilla.com


Discuss in IRC

Publishing Mercurial Clones

 

When working with Mercurial, it is often nice to publish your changes on a server so others can examine and work with them as well. If you have commit access to CVS, you should have an LDAP account, and that should allow you to push to hg.mozilla.org. If you do, you can create clones in the /users directory and share them with others.

Configuring ssh

So you don't need to type your username every time, add these lines to ~/.ssh/config:

Host hg.mozilla.org
User your-hg@username.domain

where 'your-hg@username.domain' is simply your CVS username with the "%" character replaced with the "@" character.

Creating a Repository

It is a relatively easy process to create your own repository. It will be visible via HTTP at http://hg.mozilla.org/users/your-hg_...omain/my-repo1.

To do this, run the following command. Use the same command regardless of whether you want to clone an existing repository or create a new, empty one.

ssh hg.mozilla.org clone my-repo1

my-repo1 is the name of the new repository you want to create, not the repository you are trying to clone from.

Running the above ssh command will run an interactive script, prompting you to make some choices (about which repository you want to clone from). It is by and large self-explanatory. When the script is finished, ssh will exit. After 5-10 minutes, your repository should appear on http://hg.mozilla.org/users/

Editing your personal repository

Once you have created your mercurial repository, you can edit its description. This description will show up when people visit http://hg.mozilla.org/users/your-hg_username.domain. The process is similar to creating a brand new repository, instead of using the clone action, use the "edit" action. The "edit" action also lets you delete your repository. Please note that the delete action is irreversible.

~ $ssh hg.mozilla.org edit my-repo1

0) Exit.
1) Delete the repository.
2) Edit the description.

What would you like to do? 0

Creating an Mq Patch Queue Repository

Here's how to publish an Mq patch-queue repository:

  1. Create a new empty repository (say, "my-repo-patches") on hg.mozilla.org, as directed above.
  2. Verify that the repository is visible at http://hg.mozilla.org/users/your-hg_...y-repo-patches
  3. Initialize a patch queue, if you haven't already, with hg qinit -c
  4. Create a hgrc for your patch queue (at .hg/patches/.hg/hgrc) with these contents:
[paths]
default = http://hg.mozilla.org/users/your-hg_username.domain/my-repo-patches
default-push = ssh://hg.mozilla.org/users/your-hg_username.domain/my-repo-patches

See http://www.selenic.com/mercurial/wik...gi/MqExtension for background on Mq.

Examining Clones Via the Web

It may take a while for your clone to show up because of some caching mechanisms that have been put in place. It should show up pretty quickly though, and you'll be able to browse history via a web interface.

Others can also pull changes via http:

hg clone http://hg.mozilla.org/users/your-hg_username.domain/my-repo1

Pushing Changes

To push changes, use ssh:

hg push ssh://hg.mozilla.org/users/your-hg_u...omain/my-repo1

You may also want to add that path to the repository's hgrc, so you don't have to type it every time. Put something like this in .hg/hgrc:

[paths]
default-push = ssh://hg.mozilla.org/users/your-hg_u...omain/my-repo1

Page last modified 19:14, 29 Oct 2009 by Gerv

Files (0)