Ich habe keine große Erfahrung mit Mercurial, ich bin meistens ein Git-Typ.
Ich würde gerne einen bestimmten Mercurial-Ordner / eine bestimmte Mercurial-Datei in einem Git-Repository spiegeln. Eigentlich versuche ich, den Verlauf einer Datei aus einem Mercurial-Repository nach Git zu exportieren und dies mit zukünftigen Commits synchron zu halten.
Haben Sie Vorschläge, wie Sie vorgehen sollen? Ich glaube, der Weg sollte darin bestehen, den Verlauf des Mercurial-Patches abzurufen, jedes einzelne Commit regelmäßig als Patch zu exportieren und die Mercurial-Patches auf das Git-Repository anzuwenden.
Antworten:
Unter Linux oder irgendetwas mit
bash/sh
oder ähnlichem oderpython
versuchen Sie es mit schnellem Export :quelle
PYTHON=python2 ~/fast-export/hg-fast-export.sh -r /path/to/old/mercurial_repo
. Abgesehen davon hat es einwandfrei funktioniert.sudo easy_install mercurial
zuerst. Wäre schön in der Anleitung zu habenWindows: TortoiseHG Hg-Git-Erweiterung
Mit Hg-Git kann ein Mercurial-Repository in Git konvertiert werden. Sie können ein lokales Repository oder ein Remote-Repository verwenden, auf das über SSH, HTTP oder HTTPS zugegriffen wird.
Beispiel für die Konvertierung lokaler Repositorys.
Installieren Sie Hg-Git.
Unter Windows wird TortoiseHg mit Hg-Git geliefert, Sie müssen es jedoch über das Einstellungswerkzeug (im Abschnitt "Erweiterungen") aktivieren.
oder manuell in
~/mercurial.ini
Verwenden Sie die folgenden Befehle, um das Repository zu konvertieren:
Das
hg
Lesezeichen ist erforderlich, um Probleme zu vermeiden, da sonst hg-git auf den aktuell ausgecheckten Zweig pusht und Git verwirrt. Dadurch wird ein Zweig mit dem Namenhg
im Git-Repository erstellt. Um die Änderungen im Master zu erhalten, verwenden Sie die folgenden Befehle (nur beim ersten Durchlauf erforderlich, später nur nochgit merge
oderrebase
):quelle
Sie können (von Mercurial Seite):
--filemap
Option, einen Teil des ursprünglichen Repos in ein kleineres mit nur benötigten Dateien zu konvertierenoder (anstelle von hg-git) mit Mercurial Bridge in Git das Repository von Git klonen | ziehen
quelle
Gitify
Scheint eine modernere und benutzerfreundlichere Alternative zu sein, um die Konvertierung durchzuführen https://github.com/buchuki/gitifyhg
quelle
Konvertieren Sie ein Mercurial-Repository unter Windows 10 in Git
Wenn die Codierung kein Problem darstellt, verwenden Sie die Erweiterung TortoiseHG Hg-Git
Wenn etwas mit der Codierung nicht stimmt, verwenden Sie den Schnellexport
Installieren Sie Bash
Öffnen Sie PowerShell als Administrator und führen Sie Folgendes aus:
Installieren Sie Ubuntu 16.04 LTS aus dem Microsoft Store
Bash öffnen und ausführen
installiere mercurial
Get Fast-Export v180317 (im Moment funktionieren Versionen nach 180317 nicht richtig)
Repository konvertieren
Codierungsoptionen:
-f
Kodierung, wie-f cp1251
--fe
Dateinamencodierung wie--fe cp1251
quelle
hg-git-fast-import
https://github.com/kilork/hg-git-fast-import
Ein weiteres Dienstprogramm mit den folgenden Funktionen:
Sie können Binärdateien für Ihre Plattform herunterladen und irgendwo in den Pfad stellen oder mit installieren
cargo
(rust
muss installiert sein ):Dann ist die Verwendung wie folgt:
Es braucht nicht
Python
undMercurial
installiert werden. Die erweiterte Konfiguration ermöglicht das Ersetzen von Autoren oder Zweigen, das Präfixieren von Zweigen und vieles mehr.quelle
Wenn Sie github.com verwenden , verfügen diese anscheinend über eine Importfunktion , mit der Sie einfach die URL Ihres hg-Projekts eingeben können.
Zuerst ein neues Repository erstellen und dann auf die Zielseite blättert des neuen Repository nach unten und klicken Sie auf die „Import - Code“ Taste .
Geben Sie dann die URL Ihres vorherigen Repositorys ein und klicken Sie auf "Import starten".
Dann kümmert sich GitHub um den Rest!
Beachten Sie, dass GitHub Sie nach Ihren Anmeldeinformationen für das alte Repository fragt, wenn diese benötigt werden.
Oh! Ich habe den offiziellen Führer gefunden
quelle
Unter Windows kann es etwas schwierig sein. Nach dem Aktivieren der richtigen Plugins in mercurial (
hggit
) kann auch TortoiseHG verwendet werden.Verwenden der Konsole:
% hg bookmarks hg
% hg push <relative path to>/<git-repo>
quelle
Vielleicht hilft es heute jemandem (bei der Konvertierung eines Quecksilber-Repositorys in Git unter Beibehaltung der Historie). Getestet für die Arbeit mit Quecksilber 4.0.1.
Und schließlich, um Ihr neu konvertiertes lokales Repo voranzutreiben.
quelle