A Mercurial extension for working with GitHub repositories.
Created by Stephen McDonald <http://twitter.com/stephen_mcd>
_
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. hg-github
takes care of these for you automatically. hg-github is
BSD licensed
.
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
or::
$ 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.
You also don't need to add the hg-git extension, as it is
wrapped and used automatically by hg-github.
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
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://[email protected]/stephenmcd/hg-git
somefork = ssh://[email protected]/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://[email protected]/stephenmcd/hg-github
somefork = ssh://[email protected]/stephenmcd/hg-github-temp
github = git+ssh://[email protected]/stephenmcd/hg-github.git
github-somefork = git+ssh://[email protected]/stephenmcd/hg-github-temp.git
hg-github assumes you have the same username on GitHub and Bitbucket.
If you have a different GitHub username, you can specify it by adding
the following section to your global .hgrc
file. For example my
GitHub username is stephenmcd
::
[github]
username = stephenmcd
.. _Mercurial
: http://mercurial.selenic.com/
.. _hg-git
: http://hg-git.github.com/
.. _GitHub
: https://github.com/
.. _Bitbucket
: https://bitbucket.org/
.. _BSD licensed
: http://www.linfo.org/bsdlicense.html
.. _PyPI
: http://pypi.python.org/
.. _pip
: http://www.pip-installer.org/
.. _setuptools
: http://pypi.python.org/pypi/setuptools