Ich habe mit großem Erfolg hatte git-hgvon https://github.com/cosmin/git-hg (erfordert den Arbeits installieren hg, auch). Es unterstützt Fetch, Pull und Push und ist für mich stabiler als hg-git(ähnliche Funktionen von hgbis Git).
Anwendungsbeispiele finden Sie unter https://github.com/cosmin/git-hg#usage . Die Benutzeroberfläche ist sehr ähnlich git-svn.
Dies git-hgerfordert zusätzlichen Speicherplatz für jedes geklonte hg-Repo. Die Implementierung verwendet einen vollständigen Quecksilberklon, einen zusätzlichen Git-Bare-Klon und das eigentliche Git-Repo. Der erforderliche Speicherplatz beträgt ungefähr das Dreifache der normalen Git-Only-Nutzung. Die zusätzlichen Kopien werden unter dem .gitVerzeichnis Ihres Arbeitsverzeichnisses (oder dem Speicherort, auf den GIT_DIRwie gewohnt verwiesen wird ) gespeichert .
Hinweis: Das grundlegende Problem, git-hgdas zu lösen versucht, besteht darin, dass zwischen gitund hgFeatures keine 1: 1-Zuordnung besteht. Das größte Problem ist die Impedanzfehlanpassung zwischen Git-Zweigen und hg-unbenannten Zweigen und hg-benannten Zweigen und hg-Lesezeichen (all diese sehen für gitBenutzer sehr nach Zweigen aus ). Ein damit verbundenes Problem besteht darin, dass hgversucht wird, den ursprünglich benannten Zweignamen im Versionsverlauf zu speichern, im Gegensatz zu git, bei dem der Zweigname standardmäßig nur zur Vorlage-Commit-Nachricht hinzugefügt wird.
Jedes Tool, das behauptet, eine interoperable Brücke zwischen diesen Impedanzanpassungen zu schaffen gitund hgzu erklären, wie es damit umgehen soll. Sie können dann entscheiden, ob die ausgewählte Lösung Ihren Anforderungen entspricht.
Die Lösung git-hgbesteht darin, alle hg-Lesezeichen zu verwerfen und benannte Zweige in Git-Zweige umzuwandeln. Außerdem wird der Git-Master-Zweig auf den unbenannten Standard-HG-Zweig gesetzt.