Gibt es einen effizienten Workflow, um ein Projekt, das hauptsächlich auf Bitbucket gehostet wird, mit Hg auf GitHub zu spiegeln?
Spiegeln eines HG-Projekts von Bitbucket auf Github
Weihnachtsmann
VonC
Sie könnten ein Tool wie verwenden hg-git
zu:
- richten Sie irgendwo ein Git-Repository ein, auf das Sie Push-Zugriff haben,
- und dann laufen
hg push [path]
aus Ihrem Projekt. Zum Beispiel:
$ cd hg-git # (a Mercurial repository)
$ hg bookmark -r default master # make a bookmark of master for default, so a ref gets created
$ hg push git+ssh://[email protected]/schacon/hg-git.git
$ hg push
Dadurch werden alle unsere Mercurial-Daten in Git-Objekte konvertiert und auf den Git-Server hochgeladen.
Sie können diesen Pfad auch in die einfügen[paths]
Abschnitt von.hg/hgrc
und dann nach Namen darauf schieben.
-
Vielen Dank. Ich habe mir hg-git kurz angesehen, aber ich sehe, dass es sich immer noch in einem Alpha-Stadium befindet. Ich habe versucht, es in Cygwin zu installieren, aber ich habe im Moment ein Stabilitätsproblem damit. Sofern dies aber funktioniert, ist es definitiv ein nützliches Tool im Workflow.
– Weihnachtsmann
19. April 2010 um 20:23 Uhr
Steve Losch
Wenn Sie Mercurial für ein Projekt verwenden, können Sie schnell und einfach einen Git-Spiegel Ihres Projekts erstellen, damit Git-Benutzer beitragen können. Ich habe ein Tutorial zur Verwendung erstellt hg-git
zum Verwalten von Mercurial-Spiegeln auf GitHub.
Es behandelt die ersten Schritte mit einem GitHub-Konto, wie man ein Projekt von Mercurial zu GitHub hochschiebt und wie man Beiträge (Pull-Requests) von GitHub annimmt. Hier der Link zum Blogbeitrag: http://hgtip.com/tips/advanced/2009-11-09-create-a-git-mirror/ archiviert unter http://web.archive.org/web/20100811223113/http://hgtip.com/tips/advanced/2009-11-09-create-a-git-mirror/
-
Die oben genannte Website scheint nicht mehr verfügbar zu sein.
– mennanov
14. November 2018 um 22:02 Uhr
jbtule
‘git-remote-hg’ ist die halboffizielle Mercurial-Brücke des Git-Projekts. Sobald sie installiert ist, können Sie damit Mercurial-Repositories klonen, abrufen und von und zu Pushen, als wären sie Git-Repositories:
Hinzufügen git-remote-hg zu Ihrem Bin-Pfad. Dann kannst du so spiegeln auf github erwähnt.
git clone --mirror hg::https://bitbucket_repo
Gehen Sie dann in Ihr geklontes Repo
git remote set-url --push origin https://github.com/exampleuser/mirrored
Schließlich synchronisieren Sie Ihren Spiegel
git fetch -p origin
git push --mirror
-
Dies ist viel besser als die akzeptierte Antwort, da das Ergebnis ein echter Spiegel mit allen Tags und Zweigen sein wird.
– Kentzo
1. November 2017 um 1:15 Uhr
-
Überprüfen Sie Ihre OS-Repos, dh das Fedora-Paket ist verfügbar:
dnf install -y git-remote-hg
– Alec Istomin
30. Januar 2020 um 23:17 Uhr
Ab Juli 2013 gibt es BitSyncHub ein Webdienst zur Automatisierung dieses Prozesses über einen BitBucket Post-Receive-Hook. Sie müssen dem Dienst jedoch Schreibrechte für Ihr GitHub-Repository erteilen (add bitsynchub als Mitwirkender).
Ich berichte vom Februar 2019. Ich bin gerade auf dieses Problem gestoßen und bin dem Vorschlag von @vonc gefolgt hg-git, und füllte einige fehlende Schritte aus, damit es funktioniert. Hier stelle ich eine ausführlichere Anleitung zur Verfügung:
- Installieren Sie hg-git, indem Sie es klonen Repository irgendwo und den Abschnitt „extensions“ in Ihrer ~/.hgrc-Datei so aussehen lassen:
[extensions]
hggit = [path-to]/hg-git/hggit
Ich habe die aktuellsten Installationsanweisungen im Quell-Repository gefunden: https://bitbucket.org/durin42/hg-git. Also behalte das im Auge.
-
Installieren dulwich falls noch nicht:
pip install dulwich
. -
Erstellen Sie beispielsweise ein neues leeres Repository auf GitHub https://github.com/user/git-mirror.
-
Klonen Sie das hg-Quell-Repository und schieben Sie es auf den Git-Spiegel:
$ hg clone https://bitbucket.org/user/hg-source
$ cd hg-source
$ hg push git+ssh://[email protected]/user/git-mirror.git
Stefan Gloutnikow
Eine weitere verfügbare Lösung zum schnellen Konvertieren: https://github.com/frej/fast-export
Piedone
Du kannst den … benutzen Git-hg Mirror-Dienst um dies zu tun (einschließlich Spiegelung eines GitHub-Repos auf Bitbucket oder bidirektionale Synchronisierung).
Siehe auch stackoverflow.com/questions/883452/…
– mit
2. Dezember 2010 um 15:29 Uhr