Differences between revisions 60 and 61
Revision 60 as of 2009-06-18 20:31:07
Size: 5405
Editor: frank
Comment: p4
Revision 61 as of 2010-01-04 06:51:38
Size: 5603
Comment: update to current (hg 1.3.1) ConvertExtension state
Deletions are marked like this. Additions are marked like this.
Line 4: Line 4:
Your first option should probably be the ConvertExtension bundled with Mercurial. It supports branches, incremental imports, and a few other nice features, and is maintained by the Mercurial authors. It currently only understands CVS, subversion, Darcs and git. Your first option should probably be the ConvertExtension bundled with Mercurial. It supports branches, incremental imports, and a few other nice features, and is maintained by the Mercurial authors. It currently only understands CVS, Subversion, Git, Darcs, Monotone, Bazaar, GNU Arch, Perforce and Mercurial as source formats and Mercurial and Subversion as destination formats.
Line 12: Line 12:
The ConvertExtension supports GNU Arch since (df659eb23360, 0.9.5+)

Other tools for Arch conversion can be found at ArchConversion.
 * The ConvertExtension supports GNU Arch since (df659eb23360, 0.9.5+)
 * Other tools for Arch conversion can be found at ArchConversion.
Line 18: Line 17:
 * [[ConvertExtension]]
Line 41: Line 41:
The ConvertExtension supports Darcs.

An older sample Darcs conversion script is available in the contrib/ directory of the Mercurial source.

Also see [[Tailor]].
 * The ConvertExtension supports Darcs.
 * An older sample Darcs conversion script is available in the contrib/ directory of the Mercurial source.
 * Also see [[Tailor]].
Line 95: Line 93:
== Monotone ==

 * [[ConvertExtension]]

Converting Repositories

Your first option should probably be the ConvertExtension bundled with Mercurial. It supports branches, incremental imports, and a few other nice features, and is maintained by the Mercurial authors. It currently only understands CVS, Subversion, Git, Darcs, Monotone, Bazaar, GNU Arch, Perforce and Mercurial as source formats and Mercurial and Subversion as destination formats.

Otherwise, the following tools may be useful.

1. Arch / TLA / Baz 1.5

2. Bazaar?

3. ClearCase

4. CVS

Multiple convertors exist for converting from CVS to Mercurial:

Note: If ConvertExtension fails to import your repository, try using cvs2svn to convert first to Subversion, and then import from Subversion. The cvs2svn converter correctly handles a number of cases that the direct cvsps-based converter gets confused on. Alternatively cvs2svn can also export to git-fast-import format which FastImportExtension can process.

You can also convert from Mercurial to CVS:

5. Darcs

  • The ConvertExtension supports Darcs.

  • An older sample Darcs conversion script is available in the contrib/ directory of the Mercurial source.
  • Also see Tailor.

6. Git

See GitConversion (incremental).

7. Subversion

The ConvertExtension included in Mercurial 0.9.5 can import Subversion trees. It uses the Subversion API, so it can speak any Subversion repository access protocol.

Examples and details about Subversion interoperability can be found in WorkingWithSubversion.

Converters that work on local repositories or data (faster, if this is an option for you):

Converters that work on remote repositories:

Syncing tools:

  • hgsvn allows you to work on SVN checkouts using Mercurial (mirroring all SVN history in a local Mercurial repository on which you can also do local development). It is useful for managing private branches, submitting patches to project maintainers, have fast local operations instead of slow remote "svn up/log/blame", etc. Also useful as "one-shot" conversion tool if you just remove all the svn directories ("find . -name '.svn' |xargs rm -r") afterwards.

  • SubversionToMercurialSync (like hgsvn, but more primitive)

8. Perforce

The ConvertExtension supports conversion from Perforce since version 1.2.

There is also a stand-alone script p4_to_hg This utility can actually keep two repositories in sync.

Currently, it's slapped together and built to serve my particular needs, but it could probably be modified into something more general. It currently makes no attempt to do anything with Perforce's ability to track branches or the movement of changesets from branch to branch. -- EricHopper 2005-09-27 06:31:03

See also posting http://selenic.com/pipermail/mercurial/2008-July/020241.html: "Start of Mercurial git-fast-import importer (was p4 to hg)" by Paul Crowley

9. Bitkeeper

Because of the threatening behavior of Larry McVoldemort of Bitmover, no Bitkeeper conversion tools have been made publically available. See GenericConversion for details on building your own repository conversion tool.

10. TeamWare

Very experimental conversion script available if you can find nothing better:

http://blogs.sun.com/jglick/entry/teamware_to_mercurial_history_conversions

11. Visual SourceSafe

12. Monotone

13. Other systems

Tailor is a conversion tool that can do simple conversions from a variety of systems. See GenericConversion for details on building your own repository conversion tool.


CategoryConversion

RepositoryConversion (last edited 2020-07-05 13:34:51 by MarcinKasperski)