WARNING: this extension is incomplete and lightly tested. It is
currently intended for Mercurial developers or particularly daring
hg-fastimport is a Mercurial extension for importing Git's fast-import
dumps into Mercurial. fast-import is a file format for representing the
entire history of a version control repository.
This file format was designed to make it easier to write tools which
convert from foreign (non-Git) VCS repository formats into Git; such
tools exist for CVS, Mercurial, Darcs, and Perforce.
However, there's no reason Git should be the only VCS to read
git-fast-import files; for example, Bazaar has a fastimport extension
similar in scope and aim to hg-fastimport. (In fact, hg-fastimport
draws heavily on the work done for bzr-fastimport.)
The goal of hg-fastimport is to make it just as easy to populate a
Mercurial repository from a fastimport dump as it is for Bazaar or Git.
hg-fastimport requires Mercurial 1.3.
hg-fastimport depends on the python-fastimport library (which was extracted
from bzr-fastimport). python-fastimport lives on launchpad.net at
To make the 'fastimport' package provided by python-fastimport available
to hg-fastimport, you need to add the python-fastimport directory to
It should also be possible to install python-fastimport from cheeshop:
$ easy_install install python-fastimport
And most Linux distributions have it packaged.
To use hg-fastimport, add a line like
fastimport = /path/to/hg-fastimport/hgfastimport
to the [extensions] section of your hgrc. Don't forget to set
PYTHONPATH as explained above.
To import into a brand-new Mercurial repository:
hg init new
hg -R new fastimport FILE...
where FILE... is a list of one or more fast-import dumps.
hg-fastimport uses Mercurial's own testing infrastructure, so you will
need a copy of the Mercurial source handy. For example, I keep a clone
of Mercurial "crew" in ~/src/hg-crew. To test hg-fastimport:
The fast-import format is documented in the git-fast-import(1) man page:
Tools to convert various version control repositories to
http://repo.or.cz/w/fast-export.git (Mercurial, Subversion)
You can get the latest copy of hg-fastimport from its public Mercurial
hg clone http://vc.gerg.ca/hg/hg-fastimport
Paul Crowley <paul at lshift dot net>
derived from bzr-fastimport by:
Ian Clatworthy <ian.clatworthy at internode dot on dot net>
Greg Ward <greg-hg at gerg dot ca>
Paul Aurich <paul at darkrain42 dot org>
Jelmer Vernooij <jelmer at samba dot org>
Copyright (C) 2008 Canonical Ltd
Copyright (C) 2008 LShift Ltd.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.