So verwenden Sie WinMerge als Vergleichstool für Mercurial
12225
quanticle
Ich verwende das verteilte Versionskontrollsystem von Mercurial und frage mich, wie ich es konfigurieren kann, um WinMerge anstelle eines eigenen internen Vergleichstools zu verwenden. Ich habe bereits WinMerge als Merge-Tool, aber ich möchte, dass Mercurial WinMerge verwendet, wenn ich Folgendes eingebe:
hg diff
Gibt es eine Möglichkeit, dies zu tun, oder bleibe ich bei Mercurials internem Diff-Tool?
Fügen Sie diese Zeilen Ihrer persönlichen Mercurial.ini-Datei hinzu
[Erweiterungen] extdiff = [extdiff] cmd.winmerge = C: \ Programme \ WinMerge \ WinMergeU.exe opts.winmerge = / e / x / u / wl
Führen Sie nun das Tool Globale Einstellungen aus. Auf der Registerkarte TortoiseHg sollte winmerge in der Dropdown-Liste für den Befehl "Visual Diff" angezeigt werden. Wählen Sie winmerge aus, übernehmen Sie und schließen Sie dann.
Mit diesem Ansatz können Sie nahezu jedes visuelle Diff-Tool hinzufügen. Beachten Sie jedoch, dass Ihr Diff-Tool Verzeichnis-Diffs unterstützen muss, wenn es von TortoiseHg verwendet wird, es sei denn, Sie verwenden Release 0.8 oder höher.
Joel stellte auch eine Lösung hier, falls Sie Mercurial unter Cygwin laufen.
/e ermöglicht das Schließen von WinMerge mit einem einzigen Tastendruck auf die Esc-Taste
/x schließt WinMerge (nachdem ein Informationsdialogfeld angezeigt wurde), wenn Sie einen Vergleich identischer Dateien starten
/u verhindert, dass WinMerge einen Pfad (links oder rechts) zur Liste der zuletzt verwendeten Geräte (MRU) hinzufügt
/wl öffnet die linke Seite als schreibgeschützt
Ich verwende weder TortoiseHG, noch betreibe ich Mercurial unter Cygwin. Ich verwende das Standardbefehlszeilen-Installationsprogramm von Mercurial von http://mercurial.berkwood.com. Ihre Lösung hat funktioniert, in dem Sinne, dass ich 'hg winmerge' eingeben kann'Um den Unterschied zwischen ihm und der vorherigen Version zu sehen, aber' hg diff 'bringt immer noch dasselbe (ziemlich hässliche) Diff-Tool auf. Trotzdem ist es besser als nichts.
quanticle vor 15 Jahren
0
Ich denke, diese Antwort setzt voraus, dass Sie Mercurial.ini im TortoiseHg-Verzeichnis bearbeiten (zB C: \ Program Files \ TortoiseHg). Wenn Sie das Verzeichnis im Mercurial-Verzeichnis bearbeiten (z. B. C: \ Programme \ Mercurial), funktioniert dies nicht (zumindest nicht für mich).
Ashley Davis vor 14 Jahren
0
auch c: \ Programme (x86) \ WinMerge \ WinMergeU.exe
Avram vor 11 Jahren
0
Stellen Sie sicher, dass Sie den Pfad zu WinMerge nicht in der Konfigurationsdatei in Anführungszeichen setzen, sonst funktioniert es nicht.
Drealmer vor 6 Jahren
0
7
renfeng
So funktioniert es für mich - eine reine Befehlszeile, die nicht nur Tortoisehg ist
Bearbeiten Sie zuerst die Datei (unter einem 64-Bit-Fenster)
C: \ Programme (x86) \ Mercurial \ Mercurial.ini
[extensions] ; must uncomment this line extdiff = [extdiff] ; i'm using winmerge unicode version cmd.winmerge = C:\Program Files (x86)\WinMerge\WinMergeU.exe ; it explains winmerge command line parameters here: http://winmerge.org/docs/manual/CommandLine.html opts.winmerge = /r /e /x /u /wl
Dann können Sie "hg winmerge ..." anstelle von "hg diff ..." verwenden.
Ich finde es nützlich, winmerge im Hintergrund auszuführen, damit ich beim Festlegen der Festschreibungsnachricht Änderungen betrachten und Statistiken darüber anzeigen kann, welche Dateien in der Befehlszeile geändert wurden. Legen Sie dazu eine Batchdatei in das mercurial-Verzeichnis ab, die start / b hg winmerge enthält hg diff --stat
danio vor 14 Jahren
0
3
alehro
Well, the answers given earlier doesn't give me desired effects. They doesn't allow to make revisions diff and in place edit(I mean the same functionality which is available for TortoiseSVN from the box). To do that I've added additionally to mercurial.ini this section: