Hello, 

After talking with Rob on IRC, I decided to experiment with setting up a github 
mirror of the mercurial repository. The benefits, hopefully, would be failover 
plus easy access for those that like/prefer git.

Here's how I set it up.

1. Setup the hg-git plugin
$ sudo easy_install hg-git

2. Edit ~/.hgrc to contain the following:
[extensions]
hgext.bookmarks =
hggit =



2. Clone the mercurial repo
$ hg clone http://landley.net/hg/toybox

3. Create an empty repository on github called toybox

4. In the mercurial working directory, make a bookmark of master for default, 
so a ref gets created
$ hg bookmark -r default master


5. Push the repo to the new github location
$ hg push git+ssh://[email protected]:jhuntwork/toybox.git


You should obviously be able to see / checkout the repo from 
https://github.com/jhuntwork/toybox

I haven't been able to test too much, but it seems that pushing/pulling can go 
either direction, assuming appropriate permissions are in place. To push 
changes from mercurial to github, it would essentially be:
$ hg update
$ hg push git+ssh://[email protected]:jhuntwork/toybox.git

To forward changes from github to mercurial, It should be able to work like so:
$ hg pull git+ssh://[email protected]:jhuntwork/toybox.git
pulling from git+ssh://[email protected]:jhuntwork/toybox.git
["git-upload-pack 'jhuntwork/toybox.git'"]
importing git objects into hg
["git-upload-pack 'jhuntwork/toybox.git'"]
(run 'hg update' to get a working copy)


$ hg update
1 files updated, 0 files merged, 0 files removed, 0 files unresolved


$ hg push
pushing to http://landley.net/hg/toybox
searching for changes
remote: ssl required



I'm obviously using the wrong push scheme, plus I'm missing authentication. :) 
But I think this illustrates the use case.

JH


_______________________________________________
Toybox mailing list
[email protected]
http://lists.landley.net/listinfo.cgi/toybox-landley.net

Reply via email to