Convertion tools (GSoC 2009)

Matt Mackall mpm at selenic.com
Tue Mar 24 15:51:55 CDT 2009


On Tue, 2009-03-24 at 21:40 +0100, Abderrahim Kitouni wrote:
> Hi,
> 
> I did more research on the subject, I downloaded dulwich and played
> with it in IPython,
> I think it is useable but needs some polishing (I found some technical
> documents about git
> [1] so that shouldn't be a problem), the wire protocol is therefore
> not a problem.
> 
> So to be able to clone, we'll just need to convert git objects
> (commit, tree, blob, tag)

I would recommend enumerating all of the elements of history in both
Mercurial and Git and figuring out what sort of mappings are possible
between each corresponding item. There are some things that aren't
represented on one side or the other such as:

- rename data in hg
- octopus merges in git
- named branches in hg
- tags in hg vs git
- manifests in hg vs tree blobs in git
etc.

Ideally, we'd like to be able to round-trip (go from hg to git to hg
while preserving everything), but that may be quite challenging.
Some of these issues can be hidden via a persistent caching of some
sort. Others might be trickier.

I'm also asking candidates to go through the process of submitting a
patch for a small bug or feature. Find one on the BTS or wiki, research
it, discuss it on IRC, write a patch, test it, submit it for review,
incorporate feedback, etc.

-- 
http://selenic.com : development and support for Mercurial and Linux




More information about the Mercurial-devel mailing list