Разность мерзавца с вне всякого сравнения

Я преуспел в том, чтобы заставить мерзавца запускаться Вне всякого сравнения 3 как различный инструмент однако, когда я делаю разность, файл, с которым я выдерживаю сравнение, не загружается. Только последняя версия файла загружается и ничто иное, таким образом, нет ничего на правой панели Вне всякого сравнения.

Я выполняю мерзавца 1.6.3.1 с Cygwin с Вне всякого сравнения 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

Кто-либо еще встретился с этой проблемой и знает решение этого?

Править:
Я следовал за предложениями VonC, но у меня все еще есть точно та же проблема как прежде. Я довольно плохо знаком с Мерзавцем поэтому, возможно, я не использую разность правильно.

Например, я пытаюсь видеть разность на файле с командой как такой:
разность мерзавца main.css

Вне всякого сравнения затем откроет и только отобразит мой текущий main.css в левой панели, на правой панели нет ничего. Я хотел бы видение моего текущего main.css в левой панели по сравнению с ГОЛОВОЙ, в основном что я в последний раз фиксировал.

Мой 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

Моя конфигурация мерзавца похожа на это для Разности:

[diff]  
external = c:/cygwin/bin/git-diff-wrapper.sh
106
задан Manfredo 29 September 2017 в 17:34
поделиться

4 ответа

Я не использую дополнительные файлы оболочки .sh. Моя среда - Windows XP, git 1.7.1 на cygwin и Beyond Compare 3. Ниже приведен мой файл .git / config .

[diff]
    tool = bc3
[difftool]
    prompt = false
[difftool "bc3"]
    #use cygpath to transform cygwin path $LOCAL (something like /tmp/U5VvP1_abc) to windows path, because bc3 is a windows software
    cmd = \"c:/program files/beyond compare 3/bcomp.exe\" "$(cygpath -w $LOCAL)" "$REMOTE"
[merge]
    tool = bc3
[mergetool]
    prompt = false
[mergetool "bc3"]
    #trustExitCode = true
    cmd = \"c:/program files/beyond compare 3/bcomp.exe\" "$LOCAL" "$REMOTE" "$BASE" "$MERGED"

Затем я использую $ git difftool для сравнения и $ git mergetool для объединения.

О trustExitCode : Для настраиваемой команды слияния укажите, можно ли использовать код выхода команды слияния, чтобы определить, было ли слияние успешным. Если не установлено значение true, то проверяется временная метка целевого файла слияния, и слияние считается успешным, если файл был обновлен, в противном случае пользователю предлагается указать успешное слияние.

137
ответ дан 24 November 2019 в 03:49
поделиться

Страница поддержки Помимо страницы поддержки "Сравнение" немного краткая.

Проверьте мой diff.внешний ответ на наличие дополнительной информации (относительно точного синтаксиса)

Извлечение:

$ git config --global diff.external <path_to_wrapper_script>

в командной строке, заменяя его на "git-diff-wrapper.sh", так что ваш ~/.gitconfig содержит

-->8-(snip)--
[diff]
    external = <path_to_wrapper_script>
--8<-(snap)--

Убедитесь, что используете правильный синтаксис для указания путей к скрипту-обёртке и инструменту diff, т.е. используйте прямые косые, а не обратные слеши. В моём случае, у меня есть

[diff]
    external = c:/Documents and Settings/sschuber/git-diff-wrapper.sh

в .gitconfig и

"d:/Program Files/Beyond Compare 3/BCompare.exe" "$2" "$5" | cat

в скрипте-обёртке.


Примечание: вы также можете использовать git-диффтол.

4
ответ дан 24 November 2019 в 03:49
поделиться

Обратите внимание, что вы указали неверный путь в $ 2. потому что вы находитесь под Cygwin, а BC3 нет, поэтому вам следует указать полный путь для Это. например "d: / cygwin $ 2"

Пожалуйста, обратитесь к моему git-diff-wrapper.sh здесь:

$ cat ~/git-diff-wrapper.sh
#!/bin/sh
echo $2
echo $5
/cygdrive/c/Program\ Files\ \(x86\)/Beyond\ Compare\ 3/BCompare.exe "d:/programs/cygwin$2" "$5"

Удачи.

3
ответ дан 24 November 2019 в 03:49
поделиться

Для чего угодно причина, для меня файл 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"
0
ответ дан 24 November 2019 в 03:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: