view README.txt @ 48:1cf21a8c274b

Adapt to upstream changes in pyfastimport. - use parse(), not iter_commands() - changeset hashes differ for streams with inline file contents
author Greg Ward <greg-hg@gerg.ca>
date Sun, 17 May 2009 18:18:01 -0400
parents 233040cea97a
children d3ae32b7f282
line wrap: on
line source

hg-fastimport
-------------

WARNING: this extension is incomplete and lightly tested.  It is
currently intended for Mercurial developers or particularly daring
users.

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
converted from foreign VCS repository formats into Git format; 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.)

If this tool can become an equally effective reader of such files for
Mercurial, fast-import can become a "lingua franca" for the exchange of
repository histories between revision control tools.


DEPENDENCIES
------------

hg-fastimport depends on the pyfastimport library (which was extracted
from bzr-fastimport).  pyfastimport lives on launchpad.net at

  https://code.launchpad.net/~gward/bzr-fastimport/reusable

If you have Bazaar on your local machine, you can get the code with

  bzr branch lp:~gward/bzr-fastimport/reusable pyfastimport

(If you know how to get a tarball out of launchpad.net, please let me
know.  I don't see how to get the pyfastimport code without Bazaar.)

Then make pyfastimport/fastimport available to hg-fastimport, e.g.

  ln -s ../pyfastimport/fastimport .


USAGE
-----

To use hg-fastimport, add a line like

  fastimport = /path/to/hg-fastimport/hgfastimport

to the [extensions] section of your hgrc.

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.


TESTING
-------

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:

  cd tests
  ~/src/hg-crew/tests/run-tests.py --with-hg=dummy


FURTHER READING
---------------

The fast-import format is documented in the git-fast-import(1) man page:

  http://www.kernel.org/pub/software/scm/git-core/docs/git-fast-import.html

Tools to convert various version control repositories to
fast-import format:

  http://cvs2svn.tigris.org/cvs2git.html    (CVS)
  http://repo.or.cz/w/fast-export.git       (Mercurial, Subversion)
  http://repo.or.cz/w/darcs2git.git         (Darcs)


AVAILABILITY
------------

You can get the latest copy of hg-fastimport from its public Mercurial
repository:

  hg clone http://vc.gerg.ca/hg/hg-fastimport


AUTHORS
-------

original author:
  Paul Crowley <paul at lshift dot net>
  LShift Ltd

derived from bzr-fastimport by:
  Ian Clatworthy <ian.clatworthy at internode dot on dot net>
  Canonical Ltd

current maintainer:
  Greg Ward <greg-hg at gerg dot ca>

contributors:
  Paul Aurich <paul at darkrain42 dot org>


COPYRIGHT
---------

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.