2339
Comment: new page (extension under new management)
|
← Revision 9 as of 2021-02-15 12:38:24 ⇥
2105
|
Deletions are marked like this. | Additions are marked like this. |
Line 2: | Line 2: |
Line 5: | Line 4: |
''Author: Paul Crowley''[[BR]] ''Author: Ian Clatworthy'' (parser code borrowed from Bazaar)[[BR]] ''Author: Greg Ward'' (current maintainer)[[BR]] |
''Author: Paul Crowley''<<BR>> ''Author: Ian Clatworthy'' (parser code borrowed from Bazaar)<<BR>> ''Author: Greg Ward'' (current maintainer)<<BR>> |
Line 9: | Line 6: |
Clone URLs: * http://vc.gerg.ca/hg/hg-fastimport/ * http://bitbucket.org/gward/hg-fastimport/ |
Repository: http://hg.gerg.ca/hg-fastimport/ Repository: https://bitbucket.org/gward/hg-fastimport/ Repository: https://bitbucket.org/danielj7/hg-fastimport/ (Updates to work with Mercurial 3.2+) Repository: https://roy.marples.name/hg/hg-fastimport (Updates to work with Mercurial 5.6+ and Python 3.9+) |
Line 14: | Line 15: |
Line 18: | Line 18: |
* the definitive documentation for the format is [http://www.kernel.org/pub/software/scm/git/docs/git-fast-import.html the git-fast-import] man page * Bazaar also has [http://bazaar-vcs.org/BzrFastImport a similar plugin]; in fact, much of the code in `hg-fastimport` originated with Bazaar (credit to Ian Clatworthy) |
* the definitive documentation for the format is [[http://www.kernel.org/pub/software/scm/git/docs/git-fast-import.html|the git-fast-import]] man page |
Line 22: | Line 22: |
{{{ $ pip install --user hg-fastimport }}} |
|
Line 23: | Line 26: |
1. Clone one of the maintainer's repositories: {{{ hg clone http://vc.gerg.ca/hg/hg-fastimport/ |
== Configuration == Enable the extension by adding this line to `[extensions]` in `~/.hgrc`: {{{ fastimport = |
Line 27: | Line 31: |
1. Enable the extension by adding this line to `[extensions]` in `~/.hgrc`: {{{ fastimport = /path/to/hg-fastimport/fastimport }}} (where `/path/to/hg-fastimport` is the directory created by the clone operation). |
|
Line 35: | Line 33: |
Usage is simple: | |
Line 36: | Line 35: |
Usage is simple: | |
Line 38: | Line 36: |
hg fastimport SOURCE | hg fastimport FILE ... |
Line 40: | Line 38: |
reads a fast-import stream from `SOURCE` and adds changesets to the current repository. For example, to create a brand-new repository from `foo.git-dump`: | reads a fast-import stream from each `FILE` and adds changesets to the current repository. For example, to create a brand-new repository from `foo.git-dump`: |
Line 47: | Line 46: |
Line 50: | Line 48: |
Support for "blobs" (a way of specifying file contents independently of commits) is, as of 31 March 2009, brand-new and only lightly tested. | ---- CategoryExtensionsByOthers |
fastimport Extension
This extension is not distributed with Mercurial.
Author: Paul Crowley
Author: Ian Clatworthy (parser code borrowed from Bazaar)
Author: Greg Ward (current maintainer)
Repository: http://hg.gerg.ca/hg-fastimport/
Repository: https://bitbucket.org/gward/hg-fastimport/
Repository: https://bitbucket.org/danielj7/hg-fastimport/ (Updates to work with Mercurial 3.2+)
Repository: https://roy.marples.name/hg/hg-fastimport (Updates to work with Mercurial 5.6+ and Python 3.9+)
Overview
The "fast import" format originates with Git, where it is used as the generic backend for converting other SCM repositories to git. It's generic enough that it can be used to feed a Mercurial repository as well, and that's what this extension does: read a "fast import" stream and turn it into changesets in a Mercurial repository. The potential of this extension is that any foreign SCM that can be converted to Git can also be converted to Mercurial, regardless of the capabilities of Mercurial's own ConvertExtension. The catch is that the conversion is a little cumbersome: first convert to a fast-import dump, then feed that dump to Mercurial.
Links:
the definitive documentation for the format is the git-fast-import man page
Setup
$ pip install --user hg-fastimport
Configuration
Enable the extension by adding this line to [extensions] in ~/.hgrc:
fastimport =
Usage
Usage is simple:
hg fastimport FILE ...
reads a fast-import stream from each FILE and adds changesets to the current repository. For example, to create a brand-new repository from foo.git-dump:
hg init foo.hg hg -R foo.hg fastimport foo.git-dump
Limitations and caveats
There are some commands in the fast-import language that are not supported by hg-fastimport. You'll know them when you see them; Mercurial will crash with an exception.