Mit Mercurial, gibt es eine einfache Möglichkeit, meine Arbeitskopie mit der Spitze Datei im Standard-Remote-Repository diff

StackOverflow https://stackoverflow.com/questions/156280

Frage

Wenn Mercurial verwenden, würde Ich mag Lage sein, die Arbeitskopie einer Datei diff mit der Spitze Datei in meinem Standard-Remote-Repository. Gibt es eine einfache Möglichkeit, dies zu tun?

Ich weiß, dass ich eine „hg eingehende -p“ tun, um die Patch-Sets von Änderungen zu sehen in der kommenden, aber es wäre schön, nur direkt die tatsächlichen Änderungen für eine bestimmte Datei, um zu sehen, dass ich würde, wenn ich tue ein Zug der neuesten Sachen (oder was könnte ich über Push-out genommen werden).

Die einfachste Sache, die ich von jetzt denken kann, ist ein kleines Skript zu erstellen, die im Standardverzeichnis in .hg / hgrc einen Blick nimmt und lädt die Datei curl verwenden (wenn es über http ist, sonst scp es über ssh oder nur eine direkte diff tun, wenn es auf dem lokalen Dateisystem ist) und dann die Arbeitskopie oder die Spitze gegen diese temporäre Kopie diff.

Ich versuche, mein Team zu verkaufen, Mercurial, und einer meiner Teammitglieder brachte dies heute als etwas, das sie in der Lage ist leicht mit ihren GUI-Tool in SVN zu tun.

War es hilfreich?

Lösung

Nach einigem Graben, ich über die Rdiff Erweiterung das macht das meiste, was ich will es.

Es kommt nicht mit Mercurial, aber es kann durch Klonen des Repository installiert werden:

hg clone http://hg.kublai.com/mercurial/extensions/rdiff 

Und dann modifing Ihre ~ / .hgrc Datei, um die Erweiterung zu laden:

[extensions] 
rdiff=~/path/to/rdiff/repo/rdiff.py

Es ist ein wenig in schrulligem, dass es ändert tatsächlich die bestehenden „hg diff“ -Befehl durch Erfassen, wenn der erste Parameter eine Remote-URL ist. Wenn es dann wird es diese Datei gegen Ihre Spitze Datei in Ihrem lokalen Repo (nicht die Arbeitskopie) Diff. Dies als Remote-Repo ist zunächst in den Argumenten, es ist das Gegenteil von dem, was ich erwarten würde, aber man kann „--reverse“ den hg diff Befehl übergibt, dass um zu wechseln.

Ich kann diese sein Potenzial Verbesserungen an die Erweiterung sehen, aber jetzt kann ich mich um sie mit einer bash / zsh Shell-Funktion in meiner starup Datei arbeiten. Es funktioniert eine temporäre checkin meiner Arbeitskopie (von der Quecksilber-Transaktion gehalten, so kann sie zurückgerollt wird), die umgekehrte diff ausführt, und dann setzt die Transaktion zurück Dinge, um wieder zurück auf die Art, wie sie waren:

hgrdiff() {
    hg commit -m "temp commit for remote diff" && 
    hg diff --reverse http://my_hardcoded_repo $* &&
    hg rollback      # revert the temporary commit
}

Und dann rufen Sie es mit:

hgrdiff <filename to diff against remote repo tip>

Andere Tipps

Sie könnten versuchen, zwei Repositories mit lokal - einem für eingehendes Material und einen für ausgehend. Dann sollten Sie in der Lage sein, mit allen Tools diff zu tun. Siehe hier:

http://weblogs.java.net/blog /kohsuke/archive/2007/11/using_mercurial.html

erweitern auf Lars-Methode (aus irgendeinem Grunde Kommentar nicht funktioniert), können Sie die -R Option auf dem diff Befehl verwenden, um ein lokales Repository zu verweisen. Auf diese Weise können Sie die gleiche diff-Anwendung verwenden, die Sie innerhalb hg angegeben haben

Verwenden von Vorlagen Sie eine Liste aller geänderten Dateien erhalten können:

hg incoming --template {files}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top