Spiegeln eines HG-Projekts von Bitbucket auf Github

Lesezeit: 3 Minuten

Benutzer-Avatar
Weihnachtsmann

Gibt es einen effizienten Workflow, um ein Projekt, das hauptsächlich auf Bitbucket gehostet wird, mit Hg auf GitHub zu spiegeln?

  • Siehe auch stackoverflow.com/questions/883452/…

    – mit

    2. Dezember 2010 um 15:29 Uhr

Benutzer-Avatar
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.

hg-git

  • 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

Benutzer-Avatar
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

Benutzer-Avatar
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:

  1. 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.

  1. Installieren dulwich falls noch nicht: pip install dulwich.

  2. Erstellen Sie beispielsweise ein neues leeres Repository auf GitHub https://github.com/user/git-mirror.

  3. 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

Benutzer-Avatar
Stefan Gloutnikow

Eine weitere verfügbare Lösung zum schnellen Konvertieren: https://github.com/frej/fast-export

Benutzer-Avatar
Piedone

Du kannst den … benutzen Git-hg Mirror-Dienst um dies zu tun (einschließlich Spiegelung eines GitHub-Repos auf Bitbucket oder bidirektionale Synchronisierung).

1298860cookie-checkSpiegeln eines HG-Projekts von Bitbucket auf Github

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy