Einen Git Mirror erstellen

posted by Steve Losh on November 9, 2009

Von allen verteilten Versionsverwaltungssystemen wie Mercurial, ist Git wohl das populärste. Wenn Sie Mercurial für ein Projekt verwenden können sie einfach einen Git Mirror erzeugen. So können die Leute die Git verwenden sich einfach an ihrem Projekt beteiligen.

Installieren von hg-git

Zuerst müssen Sie die Erweiterung hg-git herunter laden:

easy_install dulwich
hg clone http://bitbucket.org/durin42/hg-git/

Nun ergänzen Sie ihre ~/.hgrc Datei um diese Zeile:

[extensions]
hggit = /path/to/hg-git

Einen GitHub Account erstellen

Sie benötigen einen Ort für ihren Git Mirror und GitHub ist dazu perfekt geeignet. Gehen Sie auf die Webseite und legen Sie über den Link sign up einen Account an, sofern sie bisher keinen haben.

Ein Repository bei GitHub erzeugen

Nun da Sie einen GitHub Account haben, müssen Sie über den Knop “New Repository” ein neues Repository anlegen.

Sobald dies erzeugt ist, sehen Sie eine Seite wie diese:

GitHub New Repo Sample

Sehen Sie die URL git@github.com:username/project.git? Merken Sie sich diese URL, sie wird fürs publizieren ihres Mirrors benötigt.

Ihr Projekt publizieren

Nun da Sie hg-git installiert und ein Repository für ihr Projekt auf GitHub erzeugt haben, müssen Sie mit Mercurial ihr Repository auf GitHub publizieren. Als erstes müssen Sie die Git URL in ihrem Mercurial Repository angeben. Fügen Sie dazu diese Zeile in ihrer .hg/hgrc Datei hinzu:

[paths]
git = git+ssh://git@github.com/username/project.git

WICHTIGER HINWEIS: Sie müssen die : nach github.com mit einem / ersetzen. Dies ist nötig damit Mercurial den Pfad des Repository korrekt behandeln kann.

Sie müssen zudem username und project mit den korrekten Werten ersetzen.

Nun müssen Sie mit push auf den git Pfad ihren Mirror erzeugen:

hg push git

Dies wird einige Sekunden dauern, besonders wenn es um ein grösseres Repository geht. Sobald dies abgeschlossen ist verfügen Sie über ein 100% funktionierenden Git Mirror unter http://github.com/username/project/. Wer Git verwenden will kann ihr Projekt nun mit dem Befehl git clone git://github.com/username/project.git klonen. Man wird nicht bemerken das Sie Mercurial benutzen.

Beiträge akzeptieren

Einen Mirror für Git Benutzer zum Klonen erstellen ist nett. Aber irgendwann (sofern ihr Projekt interessant ist) wird ihnen jemand eine pull Anfrage auf GitHub senden.

hg-git macht es einfach Beiträge von Git Benutzern zu integrieren. Als erstes fügen Sie den Pfad zum Fork des Git Benutzers bei ihren Pfaden ein:

[paths]
git = git+ssh://git@github.com/username/project.git
contributor = git+ssh://git@github.com/contributor_username/project.git

Denken Sie auch hier daran die : nach github.com mit / zu ersetzen.

Um deren Änderung in ihr Mercurial Repository zu übernehmen:

hg pull contributor

Sie können graphlog verwenden um zu sehen, wie ihr Repository derzeit aussieht (und ob sie mergen müssen).

Mergen Sie sofern sie wollen oder es nötig ist. Publizieren Sie danach die Änderung auf ihr Haupt-Repository für Mercurial und den Git Mirror:

hg push
hg push git

Damit sind die Grundlagen erklärt. Je nachdem wie viele Branches Sie für den Arbeitsablauf verwenden kann es komplizierter werden. Mit diesem Tipp sind Sie aber in der Lage, Änderungen von Git Benutzern zu akzeptieren.

Sie haben Mercurial gewählt, aber viele andere Leute bevorzugen Git. Machen Sie es ihnen einfach zu ihrem Projekt beizutragen.