Differences between revisions 2 and 3
Revision 2 as of 2008-01-01 09:25:40
Size: 1209
Editor: abuehl
Comment: typo
Revision 3 as of 2008-01-19 14:01:41
Size: 1235
Editor: abuehl
Comment: cat
Deletions are marked like this. Additions are marked like this.
Line 29: Line 29:
----
CategoryConversion

(See RepositoryConversion for existing conversion tools)

This describes the basic steps needed to do history conversion from arbitrary formats, as implemented in Mercurial's convert-repo script:

  • Group changes into changesets
    • This step is difficult for systems that don't have atomic commits. See cvsps for an example of how this can be done with CVS.
  • Associate a unique identifier with each changeset
  • Generate the revision graph by finding the parent changesets of each changeset
  • Generate a topologically sorted list of changesets such that parents precede their children
  • For each changeset:
    • Extract or generate a changeset description, user name, and date
    • Extract a copy of each file changed in the changeset
    • Use the Mercurial rawcommit interface to explicitly commit the changeset
    • Save a correspondence map between source changeset IDs and Mercurial changeset IDs so that the process can be
      • interrupted and resumed
  • Convert tags
    • Generate a list of tags and their corresponding source changeset IDs
    • Use the correspondence map to convert tags to Mercurial IDs
    • Write a .hgtags file
    • Commit .hgtags file


CategoryConversion

GenericConversion (last edited 2009-05-19 19:31:00 by localhost)