Git Diff с Beyond Сравнить - PullRequest
       24

Git Diff с Beyond Сравнить

101 голосов
/ 15 января 2010

Мне удалось заставить git запустить Beyond Compare 3 как инструмент сравнения, однако, когда я делаю сравнение, сравниваемый файл не загружается. Загружается только последняя версия файла и ничего больше, поэтому в правой части Beyond Compare ничего нет.

Я запускаю git 1.6.3.1 с Cygwin с Beyond Compare 3. Я настроил сверх сравнения, как они предлагают в разделе поддержки на своем веб-сайте, с помощью скрипта, подобного таковому:

#!/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

Кто-нибудь еще сталкивался с этой проблемой и знает решение этой проблемы?

Edit:
Я последовал советам VonC, но у меня все та же проблема, что и раньше. Я немного новичок в Git, так что, возможно, я не правильно использую diff.

Например, я пытаюсь увидеть различие в файле с помощью команды, подобной такой:
git diff main.css

После этого откроется Beyond Compare, и в левой панели отобразится только мой текущий файл main.css, на правой панели ничего нет. Я хотел бы увидеть мой текущий файл main.css в левой панели по сравнению с HEAD, в основном то, что я в последний раз совершал.

Мой git-diff-wrapper.sh выглядит так:

#!/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

Мой конфиг git выглядит следующим образом для Diff:

[diff]  
external = c:/cygwin/bin/git-diff-wrapper.sh

Ответы [ 17 ]

1 голос
/ 07 апреля 2015

Запустите эти команды для Beyond Compare 3 (если путь BCompare.exe в вашей системе отличается, пожалуйста, замените его в соответствии с вашим):

git config --global diff.tool bc3
git config --global difftool.bc3.cmd "\"c:/program files (x86)/beyond compare 3/BCompare.exe\" \"$LOCAL\" \"$REMOTE\""
git config --global difftool.prompt false

Затем используйте git difftool

1 голос
/ 03 ноября 2014

Разница заключается в том, что исполняемый файл вызывается: установите его для вызова bcomp.exe, и он будет работать нормально.Сконфигурируйте свою среду так, чтобы она вызывала bcompare.exe, и в результате вы получите пустую часть сравнения, взятого из вашей системы ревизий.

1 голос
/ 04 сентября 2010

http://rubenlaguna.com/wp/2010/08/05/visual-difftool-cygwin-git/ имеет решение, которое я выбрал для работы в BeyondCompare: http://gist.github.com/564573

0 голосов
/ 20 декабря 2018

Windows 10, Git v2.13.2

Мой .gitconfig. Не забудьте добавить escape-символ для '\' и '"'.

[diff]
    tool = bc4
[difftool]
    prompt = false
[difftool "bc4"]
    cmd = \"C:\\Program Files\\Beyond Compare 4\\BCompare.exe\" \"$LOCAL\" \"$REMOTE\"
[merge]
    tool = bc4
[mergetool "bc4"]
    path = C:\\Program Files\\Beyond Compare 4\\BCompare.exe

Вы можете сослаться на , настраивая вне всякого сравнения как difftool для использования команд git для его настройки.

0 голосов
/ 06 декабря 2017

Для git версии 2.15.1.windows.2 с BC2.exe.

Конфигурация ниже, наконец, работает на моем компьютере.

[difftool "bc2"] cmd = \"c:/program files/beyond compare 2/bc2.exe\" ${LOCAL} ${REMOTE}

0 голосов
/ 28 ноября 2015

Для MAC после долгих исследований это сработало для меня ..! 1. Установите запредельное сравнение, и оно будет установлено в расположении ниже

/ Приложения / Beyond \ Compare.app/Contents/MacOS/bcomp

Пожалуйста, следуйте этим шагам, чтобы сделать bc инструментом сравнения / слияния в git http://www.scootersoftware.com/support.php?zz=kb_mac

0 голосов
/ 28 мая 2010

По какой-то причине, для меня, файл tmp, созданный git diff, удалялся перед тем, как открываться вне всякого сравнения. Сначала мне пришлось скопировать его в другое место.

cp -r $2 "/cygdrive/c/temp$2"
cygstart /cygdrive/c/Program\ Files\ \(x86\)/Beyond\ Compare\ 3/BCompare.exe "C:/temp$2" "$5"
...