So erstellen Sie einen automatischen Git-Spiegel für ein HG-Repo

So erstellen Sie einen automatischen Git-Spiegel für ein HG-Repo

Ich habe ein Vim-Plugin-Projekt auf GoogleCode mit Mercurial, aber die Benutzer möchten es auf GitHub haben, um es einfacher als Git-Subrepo verwenden zu können (um ihr ~/.vim/ mit allen darin enthaltenen Plugins auf GitHub zu behalten).

Persönlich bevorzuge ich Googlecode und HG gegenüber GitHub und Git, daher möchte ich mein Projekt nicht zu GitHub verschieben und ziehe es vor, eine Art automatischen Git-Spiegel für mein HG-Repo zu implementieren. Ich habe Folgendes gelesen:Hg-Git Mercurial-Plugin,Synchronisieren eines Git-Mirrors mit hg-gitUndErstellen Sie einen Git-Mirrorund es sieht so aus, als ob es, mit etwas zusätzlichem Aufwand, funktionieren könnte, wenn man zwei Befehle statt einem verwendet:

hg push
hg push githubmirror

Aber die Sache ist, wissen Sie, die meisten von uns vergessen hg pushvon Zeit zu Zeit, als Zweiter zu laufen. Ist es also möglich, dies irgendwie zu automatisieren (mithilfe von Hooks usw.)?

Noch eine Frage: Gibt es eine bessere Möglichkeit, solche Spiegel zu erstellen? Bietet GoogleCode vielleicht bereits Git-Zugriff auf seine HG-Repos? Oder ist es vielleicht möglich, einen Git-Klon für das HG-Repo zu erstellen und ihn automatisch durch Dritte mit dem ursprünglichen HG-Repo synchron zu halten, ohne den Besitzer des HG-Repos zu benachrichtigen?

Antwort1

Sie könnten so etwas wie einen Post-Commit-Hook machen. Schauen Sie sich das anhttp://www.selenic.com/mercurial/hgrc.5.html

Haken

Befehle oder Python-Funktionen, die automatisch durch verschiedene Aktionen ausgeführt werden, z. B. durch das Starten oder Beenden eines Commits. Mehrere Hooks können für dieselbe Aktion ausgeführt werden, indem der Aktion ein Suffix angehängt wird. Das Überschreiben eines Site-weiten Hooks kann durch Ändern seines Werts oder durch Festlegen auf eine leere Zeichenfolge erfolgen. Hooks können priorisiert werden, indem dem Hook-Namen in einer neuen Zeile ein Prioritätspräfix hinzugefügt und die Priorität festgelegt wird. Die Standardpriorität ist 0, wenn nichts angegeben ist.

verwandte Informationen