2009-02-14 3 views

Antwort

16

Der Trick ist, dass Cygwin-Pfade nicht mit Windows-Pfaden identisch sind. Daher benötigen Sie ein kleines Skript, das die Cygwin-Pfade in Windows-Pfade konvertiert, bevor sie als Argumente an WinMerge übergeben werden.

Hier ist, wie es zu tun:

(1) ein Shell-Skript in /usr/bin/winmerge erstellen wie folgt:

#!/bin/sh 
"/cygdrive/c/Program Files/WinMerge/WinMergeU.EXE" /e /ub /dl other /dr local `cygpath -aw $1` `cygpath -aw $2` `cygpath -aw $3` 

Hinweis: cygpath Pfadnamen konvertiert. Wenn sich WinMerge nicht am Standardspeicherort befindet, ändern Sie den Pfad hier. Machen

(2), die eine ausführbare Datei

chmod +x /usr/bin/winmerge 

(3) Fügen Sie folgendes zu Ihrem ~/.hgrc Datei:

[ui] 
merge = winmerge 

[merge-tools] 
winmergeu.executable=/usr/bin/winmerge 
winmergeu.args=$other $local $output 
winmergeu.fixeol=True 
winmergeu.checkchanged=True 
winmergeu.gui=False 

Hinweis! Du hast wahrscheinlich bereits eine [ui] -Sektion mit deinem Namen darin. Denken Sie daran, meine Änderungen mit Ihren zusammenzuführen, fügen Sie nicht einfach einen neuen Abschnitt [ui] hinzu. Zum Beispiel sieht mein .hgrc wie folgt aus:

[ui] 
username = Joel Spolsky <[email protected]> 
merge = winmergeu 

[extensions] 
fetch = 

[merge-tools] 
winmergeu.executable=/usr/bin/winmerge 
winmergeu.args=$other $local $output 
winmergeu.fixeol=True 
winmergeu.checkchanged=True 
winmergeu.gui=False 
+0

Sie können jetzt Ihre eigene Antwort akzeptieren, richtig? –

+0

Ich muss 48 Stunden warten. –

+0

Ich würde dieses Skript wahrscheinlich nicht in/usr/bin/einfügen. Ich wollte hinter dir her, dass du Cygpath nicht benutzt hast, aber dann habe ich den Codeblock gescrollt und gesehen, was du machst. –

0

Hier ist die Shell-Skript Zeile, die für Subversion/Cygwin/WinMerge funktioniert. Der Hauptunterschied besteht darin, welche Argumente zu verwenden sind.

/cygdrive/c/Program\ Files/WinMerge/WinMergeU.exe /e /ub /dl "$3" /dr "$5" "`cygpath -aw $6`" "`cygpath -aw $7`" & 

Beachten Sie, dass dieses Beispiel auch die Beschreibungsfelder setzt und startet die Vergleiche im Hintergrund, so dass alle diffs sofort gestartet werden. Wenn Ihnen das nicht gefällt, entfernen Sie die "&".

Wenn Sie nicht wissen, was Ihr Versionskontrollprogramm an Sie weitergibt, fügen Sie Ihrem Shell-Skript 'echo $ @' hinzu. Es werden die an das Skript übergebenen Argumente gedruckt.

Verwandte Themen