Skip to content

core: add basic ability to transfer metadata between hg repos

This implements the bare minimum for transferring the Git state between Mercurial repositories, only doing so as part of a pull or push, and only doing it for the changesets transferred.

We do so by embedding a non-mandatory bundle2 part that contains tags and git mapping for the changesets in the bundle. For local, fast clones using copying or linking, we simply include the applicable Git directories as well.

There is no support for transferring between streaming clones, no support for synchronising state, and no support for transferring tags to old changesets. The main upside to this is that we've restricted the potential for conflicts massively. (I did get basic pushkey support working, but getting it right is hard.)

But it does allow me to pull from both a regularly updated mirror and directly from git, without having to convert commits twice.

Fixes #156 (closed)

Edited by Dan Villiom Podlaski Christiansen

Merge request reports