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 .

Spoike
quelle
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.

Spoike
quelle
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

VonC
quelle
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.

vdboor
quelle
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
9

Verteilte Revisionskontrolle mit Mercurial- Zuständen:

Die von convert unterstützten Tools zur Revisionskontrolle lauten wie folgt:

  • Subversion
  • CVS
  • Git
  • Darcs

Vielleicht brauchen Sie kein zusätzliches Werkzeug?

Bombe
quelle
1
Leider ist "hg convert" nicht in tortoisehg verfügbar
Spoike
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.

Luke Francl
quelle
2

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

Jay Atkinson
quelle
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
FelipeC
quelle
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"
stenci
quelle
0

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

Dilshad
quelle