Es ist mir gelungen, git dazu zu bringen, Beyond Compare 3 als Diff-Tool zu starten. Wenn ich jedoch ein Diff mache, wird die Datei, mit der ich vergleiche, nicht geladen. Es wird nur die neueste Version der Datei geladen und nichts anderes, sodass sich im rechten Bereich von Beyond Compare nichts befindet.
Ich verwende git 1.6.3.1 mit Cygwin mit Beyond Compare 3. Ich habe unvergleichlich eingerichtet, wie sie im Support-Teil ihrer Website mit einem Skript wie dem folgenden vorschlagen:
#!/bin/sh
# diff is called by git with 7 parameters:
# path old-file old-hex old-mode new-file new-hex new-mode
"path_to_bc3_executable" "$2" "$5" | cat
Hat jemand anderes auf dieses Problem gestoßen und kennt eine Lösung dafür?
Bearbeiten:
Ich bin den Vorschlägen von VonC gefolgt, habe aber immer noch genau das gleiche Problem wie zuvor. Ich bin ein bisschen neu bei Git, also benutze ich das Diff vielleicht nicht richtig.
Zum Beispiel versuche ich, das Diff in einer Datei mit einem Befehl wie dem folgenden zu sehen:
git diff main.css
Beyond Compare wird dann geöffnet und zeigt nur meine aktuelle main.css im linken Bereich an. Im rechten Bereich befindet sich nichts. Ich möchte, dass meine aktuelle main.css im linken Bereich im Vergleich zum HEAD angezeigt wird, im Grunde das, was ich zuletzt festgelegt habe.
Meine git-diff-wrapper.sh sieht so aus:
#!/bin/sh
# diff is called by git with 7 parameters:
# path old-file old-hex old-mode new-file new-hex new-mode
"c:/Program Files/Beyond Compare 3/BCompare.exe" "$2" "$5" | cat
Meine Git-Konfiguration sieht für Diff folgendermaßen aus:
[diff]
external = c:/cygwin/bin/git-diff-wrapper.sh
/c/program files
stattdessen einen Pfad im Linux-Stil verwendenc:/program files
. Auch ich habe das entfernt"$(cygpath -w $LOCAL)"
und gerade benutzt"$LOCAL"
. Das schien den Trick zu tun.