[ANN] pidgin git import v6

Felipe Contreras felipe.contreras at gmail.com
Tue May 29 13:10:30 EDT 2012


Time for a new version. Other than the usual updates, this version now
has a much faster (10x) script to fix commits, that parses properly
the information 'mtn git_export' adds, and also converts *all* the mtn
ids to git ones.

I had to find some logic to properly traverse the history to find out
the git ids, but it was not so hard after basically implementing a
custom 'git filter-branch'.

See for example this commit:

The resulting repository with all the changes:

I don't have any other tasks to do regarding the git conversion, so I
say it's done.

1) Uses extensively tested and efficient 'mtn git_export'

2) Store important monotone information; ids, parents, author,
branches, multiple changelogs, etc.

3) Automatically finds out which branches to split

4) Option to trim the repository (e.g after v2.7.0), and easily graft
it back again

5) Convert *all* mtn ids in commit messages to git ids

6) Scrip to check if something is missing (authors, branches)

7) Extremely fast; full conversion takes less than an hour in my laptop

8) Incremental importing

9) Commit metadata and graph validated against pidgin's 'pidgin-mtn-conv-files'

10) No hacks or patches needed to git, or monotone

11) Fixes authors and commit messages (including SVN patch authors)

12) Maps tags and branches

In addition, this can be easily converted to mercurial with a trivial
hack to 'hg-git'. There would be no loss of information, except
possibly renames, but this could be easily added.

At this point in time I don't have any motivation to finalize the
scripts for the proper git -> hg conversion, because I feel I'm doing
everything myself; doing the mtn -> git -> hg conversion, and fixing
'pidgin-mtn-conv-files' mtn -> hg conversion, and possibly even the
DVCS decision analysis without even a thank you[1].


[1] http://mid.gmane.org/4FC24341.80909@rekkanoryo.org

Felipe Contreras

More information about the Devel mailing list