Wie konvertiere ich ein Git-Repository in Mercurial?


104

Ich habe eine Java-Anwendung mit Git als Quellcode-Repository entwickelt. Ich möchte das Projekt mit anderen Java-Entwicklern teilen und hg scheint am meisten von ihnen verwendet zu werden.

Meine Frage ist, wie ich ein Git-Repository in hg konvertiere.

Wenn ich versucht habe, "git in hg konvertieren" zu googeln, geht es bei jedem Suchtreffer darum, von hg in git zu konvertieren. Ich benutze auch TortoiseHg .


16
Wenn Sie stattdessen von mercurial zu git konvertieren müssen: stackoverflow.com/questions/883452/…
Christian Oudard

Dieser letzte Absatz macht keinen Sinn. Ein Tippfehler?
Tshepang

1
@ Tshepang: Ich wollte "git -> hg", bekam aber "hg -> git". Ich werde diese Frage bearbeiten, aber ich denke, die Leute haben sie trotzdem bekommen, da es jetzt Antworten gibt.
Spoike

Antworten:


79

Das hg convertDienstprogramm ist nach der Installation nicht standardmäßig aktiviert. Um es als solches festzulegen, fügen Sie Ihrer .hgrcDatei Folgendes hinzu .

[extensions]
hgext.convert=

Wenn Sie TortoiseHg unter Windows verwenden, befindet sich diese Datei in Ihrem Home-Verzeichnis als mercurial.ini. Nach dieser Einstellungsänderung können Sie das hg convertDienstprogramm verwenden.


5
Unter Ubuntu kann die systemweite Änderung unter / etc / mercurial / hgrc vorgenommen werden
Sentient

1
Unter Windows kann TortoiseHg mithilfe des Menüelements "Globale Einstellungen" im Menü "TortoiseHg-Shell-Erweiterung" im Abschnitt "Erweiterungen" unter "Globale Einstellungen" aktiviert werden.
Umar Farooq Khawaja

Die Beschreibung ist etwas unvollständig, da nicht angegeben wird, dass hg für die Konvertierung Zugriff auf git benötigt. Andernfalls wird die Fehlermeldung angezeigt, dass das erforderliche "git" -Tool nicht gefunden werden kann.
jmd

41

Mit der Mercurial Convert-Erweiterung

Fügen Sie Ihrem .hgrcoder die folgenden Zeilen hinzu , um die Erweiterung zu aktivieren:

[extensions]
hgext.convert=

Und tippe a

cd src
hg convert --datesort . dst

(obwohl es zu einigen Problemen führen kann ...)

Hinweis :: metrix meldet, dass dies möglicherweise nicht funktioniert:

     hg convert --datesort src dst

Hinweis: Es tritt ein Fehler auf, hg convertwenn Sie diesen Befehl von einem anderen Verzeichnis als dem Quellverzeichnis aus ausführen.
Sie erhalten folgende Fehlermeldung:

abort: cannot read tags from git-repo4/.git

Bestätigt mit Git 1.7.9 und Mercurial 2.6.2 unter Windows XP


Wenn diese Antwort das .hgrcSetup enthalten würde, anstatt darauf zu verlinken, wäre es umfassend.
fbmd

17

Vielleicht möchten Sie sich die http://hg-git.github.com/ ansehen. Dienstprogramm : ein Git-Plugin für Mercurial

Dieses Plugin wurde ursprünglich von den Jungs von GitHub entwickelt und ermöglicht die verlustfreie Konvertierung von Git <-> mercurial. Theoretisch könnten Sie sogar das hg-Repository klonen.


2
Dies ist eine bessere Lösung als das Konvertieren des Repositorys. Es wäre auch eine bessere Antwort, wenn es mehr Details hätte. Einzeilige Antworten sind so gut wie nutzlos.
naught101

1
@ naught101, danke für den Vorschlag, ich habe hier einige weitere Informationen hinzugefügt, um sie direkt zu lesen.
Vdboor

Nachdem Sie hg-git installiert und eingerichtet haben, verwenden Sie hg gexport & hg gimport, um zwischen ihnen zu konvertieren.
CAD Kerl


6

Die Konvertierungserweiterung funktioniert möglicherweise für Sie. Wenn dies nicht der Fall ist, sollten Sie sich den Schneider ansehen , der ein Allzweckwerkzeug für die Konvertierung zwischen den verschiedenen verteilten SCMs ist.


2

Sie konnten es einfach überhaupt nicht konvertieren. Verwenden Sie einfach das Hg-Git- Plugin! Niemand wird den Unterschied kennen.


2

Neuer Spieler in der Stadt: git-remote-hg . Es bietet native Bridging-Unterstützung in Git.

Gerade:

hg init ../hgrepo
git push hg::$PWD/../hgrepo

1

In dem GitOrdner mit all meinen Git-Repositorys habe ich die Git2Hg.cmdDatei mit folgendem Inhalt erstellt:

set PATH=%PATH%;C:\Program Files\TortoiseHg
set PATH=%PATH%;C:\Program Files\Git\bin
hg convert %1

Jetzt kann ich ein Git-Repository in Hg konvertieren, indem ich dies in eine CMD eingebe:

Git2Hg "Folder Name"

0

Hg-Git Plugin oder wenn Sie für Windows oder Migration von einem zum anderen verwenden, besuchen Sie hier 2 [Windows GIT]

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.