Wenn Hg-Git aktuelle Commits nicht sieht...
Manche Projekte die mein Interesse haben, werden mit Mercurial verwaltet. Das ist nicht schlimm und auch verständlich, schließlich ist Mercurial auch (!) ein gutes DVCS.
Ich persönlich arbeite aber lieber mit Git. Zumindest im Moment, in Mercurial komm ich erst langsam in den Workflow hinein. Um die Kommunikation zwischen Mercurial und Git herzustellen nutze ich Hg-Git. Das klappt meistens wunderbar und hier wird dazu eine gut verständliche Anleitung gegeben.
Problem
Manchmal kommt es aber zu seltsamen Problemen: Ein mittels hg pull
geholtes Update (beispielsweise m Upstream-Repository) ist für Mercurial da und verfügbar. Mit hg update
kann ich auch problemlos die aktuelles Daten im Ordner haben. Leider kommt es aber vor, dass ein anschließendes hg gexport
um die Mercurial-Versionen ins Git-Repo zu bekommen, die aktuelleren Versionen nicht wahrnimmt. Damit wird eine ältere Version exportiert und es ändert sich gar nix. Die Ältere Version ist dann eben die zuvor lokal aktuelle. Bei GitHub wurde das Problem auch schon mal festgestellt.
Lösung
Die Lösung ist dort auch angedeutet. Das Problem ist ein fehlendes Update der Bookmarks. Diese werden (daher die Extension aktivieren) von Hg-Git benutzt um die Version zu bestimmen, die nach Git "konvertiert" wird. Als schnelle Lösung können die benötigten Bookmarks einfach überschrieben werden. (Beispielbranch: hg/default. Diesen nimmt Hg-Git als default):
So können auch andere Branches als Bookmark verwendet werden um diese dann auch mittels Hg-Git in Git verfügbar zu machen. Dazu einfach das "default" mit dem Branch-Namen ersetzen.
Außerdem
Dann kann die Sache noch vereinfacht werden. Will man explizit Mercurial nehmen um Updaten nach Git zu spielen, kann man in die Datei .hg/hgrc
folgendes einfügen:
post-pull.bookmark = hg bookmark -f hg/default -r default
post-pull.export = hg gexport
Damit wird nach jedem Pull der default-Bookmark aktualisiert und ein automatisierter gexport gemacht. Der Hinweis, wie auch den nächste, stammt aus den Kommentaren zu dem oben schon verlinkten Artikel.
Zusätzlich kann man was vergleichbares in Git machen. Dort wird die Datei .git/config
manipuliert. Man füge einen Alias hinzu:
hpull = !hg pull
Damit wird einfach mit git hpull
das Mercurial-Pendent aufgerufen.
P.s. Dort gibt es einen guten Einblick in Git sowie Mercurial. Beide sind gute Werkzeuge. Beide haben Schwächen und Stärken. Eine von dort stammende und (in meinen Augen) passende Analogie ist die Folgende: Mercurial = James Bond und Git = MacGyver.
Manche Projekte die mein Interesse haben, werden mit Mercurial verwaltet. Das ist nicht schlimm und auch verständlich, schließlich ist Mercurial auch (!) ein gutes DVCS.Ich persönlich arbeite aber lieber mit Git. Zumindest im Moment, in Mercurial komm ich erst langsam in den Workflow hinein. Um die Kommunikation zwischen Mercurial und Git herzustellen nutze ich Hg-Git. Das klappt meistens wunderbar und hier wird dazu eine gut verständliche Anleitung gegeben.
オンラインカジノ ブログ Online casinos that accept players for the US silent have stacks of tumid
- Antwort
Submitted by zxgvbfsf (not verified) on Tue, 2013-03-12 15:59.This was something special for me
- Antwort
Submitted by jhgygvtdr (not verified) on Tue, 2012-08-28 21:07.