Extension to allow mirroring Mercurial repositories inside Bitbucket to Github.
This extension is not distributed with Mercurial.
Author: Stephen McDonald
hg-github is a Mercurial extension that wraps hg-git, and supports a work-flow where repositories are hosted on Bitbucket and mirrored on GitHub. This work-flow normally requires adding Git paths to each repository's config file, and creating Mercurial bookmarks pointing to the GitHub repository's branch name. The hg-github extension takes care of these for you automatically.
The easiest way to install hg-github is directly from PyPi using pip or setuptools by running the respective command below:
$ pip install -U hg-github
$ easy_install -U hg-github
Otherwise you can download hg-github and install it directly from source:
$ python setup.py install
Once installed, add hggithub to the extensions section in your global .hgrc file:
[extensions] hggithub =
Note that there isn't a dash in hggithub in your .hgrc file. The hg-git extension does not need to be installed, as it is wrapped and used automatically by hg-github.
3.1. Repository Paths
As mentioned above, the GitHub path is given the name github when the default remote location is on Bitbucket. For other named Bitbucket locations, the name github-NAME is given, where NAME is the name of the path located on Bitbucket. For example, consider the following .hg/hgrc repo config:
[paths] default = ssh://firstname.lastname@example.org/stephenmcd/hg-git somefork = ssh://email@example.com/stephenmcd/hg-git-temp
hg-git will add entries to the config file as follows. Note that the config file isn't actually written to:
[paths] default = ssh://firstname.lastname@example.org/stephenmcd/hg-github somefork = ssh://email@example.com/stephenmcd/hg-github-temp github = git+ssh://firstname.lastname@example.org/stephenmcd/hg-github.git github-somefork = git+ssh://email@example.com/stephenmcd/hg-github-temp.git
3.2. GitHub Username
[github] username = stephenmcd
Once installed, assuming the default remote location of your repository is on Bitbucket, the GitHub path is automatically added and given the name github, so you can push to it with the following command:
$ hg push github
5. See also