Es gibt hin und wieder Situationen in denen ist es nötig, ein Repository in ein anderes zu konvertieren. In diesem Beitrag wird gezeigt, wie ein mercurial(hg) Repository in git umgewandelt wird.
Zunächst muss das hg Repository geklont werden.
$ hg clone https://example.org/hg-repo
$ cd hg-repo
$ hg bookmarks -r default master
$ cd ..
Im nächsten Schritt wird ein neues git Repository angelegt, dies könnte natürlich auch auf einem anderen Computer/Server liegen.
$ mkdir git-repo
$ git init --bare git-repo
Damit mit hg in das git Repository gepusht werden kann muss die git-Erweiterung installiert werden. Dies kann bei Ubuntu 12.04 wie folgt geschehen.
$ sudo apt-get install mercurial-git
Ist dies geschafft, muss die Erweiterung noch geladen werden, dies geschieht durch den folgenden Eintrag in der Datei "~/.hgrc". Eventuell muss statt "git" "hggit" geschrieben werden. Im vorliegenden Fall hat es aber wie gegeben funktioniert.
[extensions]
git=
Jetzt sollte die Erweiterung zur Verfügung stehen und es kann der Quellcode aus hg in das git Repository gepusht werden.
$ cd hg-repo
$ hg push ../git-repo
Anschließend kann das git Repository verwendet werden.