Полное решение (добавлено автором вопроса)
Создайте исполняемый скрипт xltrail-bc-diff.sh
в существующей директории C:\Users\<User>\AppData\Local\Programs\Git xltrail\
:
#!/bin/bash
#
# xltrail-bc-diff.sh massages the output of git-xltrail-diff.exe and passes it
# into Beyond Compare in "Text Patch" mode.
#
# Input arguments from `git diff` are:
# $1 $2 $3 $4 $5 $6 $7
# path old-file old-hex old-mode new-file new-hex new-mode
path="$1"
tempDiffPath=`mktemp --suffix=".diff"`
# xltrail's diff output is color-coded with no option to remove it
# (see https://github.com/ZoomerAnalytics/git-xltrail/issues/30) so we use
# sed to strip the color codes.
git-xltrail-diff.exe $@ | sed 's/\x1b\[[0-9;]*m//g' > $tempDiffPath
BCompare.exe -fv="Text Patch" $tempDiffPath
Добавьте следующее в ваш файл конфигурации git:
[diff "xltrail-bc"]
command = xltrail-bc-diff.sh
В хранилище должен быть файл .gitattributes
, созданный xltrail для связи файлов Excel с инструментами сравнения и слияния xltrail.Измените записи различий, чтобы использовать xltrail-bc
:
*.xla diff=xltrail-bc
*.xlam diff=xltrail-bc
*.xls diff=xltrail-bc
*.xlsb diff=xltrail-bc
*.xlsm diff=xltrail-bc
*.xlsx diff=xltrail-bc
*.xlt diff=xltrail-bc
*.xltm diff=xltrail-bc
*.xltx diff=xltrail-bc
И теперь git diff <Excel workbook>
должен открыться в Beyond Compare.
Оригинальный ответ
Во-первых,вам нужно настроить ваш git на что-то вроде этого:
git config --global diff.tool bc4
git config --global difftool.bc4.cmd "\"C:/Program Files (x86)/Beyond Compare 4/BCompare.exe\" \"\$LOCAL\" \"\$REMOTE\""
git config --global difftool.prompt false
Затем вы можете проверить / отредактировать файл .git / config и убедиться, что что-то подобное:
[diff]
tool = bc4
Если этого недостаточно, пожалуйста, отправьте файл .git / config .
Edit, для дальнейших нужд.Кажется, что в принципе невозможно подключить xtrail и Beyond Compare таким образом.Я с успехом воспроизвел вашу проблему.Хотя, возможно, что-то можно сделать в файле .gitattributes, но безуспешно.
Итак ... единственное возможное, сложное решение - это создать свой собственный скрипт diff и подключить всеинструменты вместе.
Со своей стороны, я пытался использовать скрипт GNU / Bash (вы можете получить поддержку установки Git Bash на Windows), но вы можете создать .bat.
Во-первых, вам нужно обновить файл конфигурации .git / config , чтобы указать путь к новому файлу скрипта, например:
[diff "myComplexDiff"]
command = C:/Users/XXX/Documents/complexGitDiff.sh
Затем вам нужно связатьРасширение файла с помощью этого diff, обновляя ваш .gitattributes файл, что-то вроде (для любого необходимого расширения):
*.xls diff=myComplexDiff
А затем скрипт, который может выглядеть следующим образомэто:
#!/bin/bash -x
# Sample of information given by git
# b851185776b7826a6cc82d3aa6a8d53fa47e0c26 100644 simpleTest.xls 0000000000000000000000000000000000000000 100644
fileName="$1"
tmpFile="/tmp/"$( date +'%s')"$fileName.diff"
git-xltrail-diff.exe $@ >"$tmpFile"
c:\\Program\ Files\\Beyond\ Compare\ 4\\bcomp.exe "$fileName" "$tmpFile"
На самом деле я не нашел нужной опции для Beyond Compare, чтобы принять вывод diff из git-xltrail-diff.exe, но это единственное, что осталось сделать.