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.