Difftool для бинарных файлов в Git
Я сделал Git для сравнения некоторых двоичных файлов, скопировав файлы в каталог в Temp
папка в Windows с помощью .bat
файл (или пакетный скрипт).
Скрипт копирует исходный файл и создает сопутствующий файл с расширением .txt
который содержит текстовое представление двоичного файла. После этого он записывает содержимое сгенерированного файла с помощью команды
type C:\DOCUME~1\ROGER\CONFIG~1\Temp\roger\file.txt
Все, что использует атрибуты Git. Теперь мне нужно использовать спутника .txt
файл для использования в git difftool
Команда вместо исходного файла. Как мне сказать Git, какие файлы он должен использовать при различий .someExtension
файлы?
Я пытался сделать другой .bat
файл, но конфигурация необходима в .gitconfig
Кажется, что запускаются только скрипты Linux, а не Windows, которые мне нужны, потому что Linux не понимает путь, указанный Git, т.е. C:\DOCUME~1\ROGER\CONFIG~1\Temp\
при запуске команды копирования cp
,
Это мое .gitconfig
:
[difftool "fmbdiff"]
keepBackup = false
keepTemporaries = false
path = C:/Archivos de programa/Git/cmd/fmbDiffTool.bat
cmd = \"/c/Archivos de programa/Git/cmd/fmbDiffTool.bat\" \"/$LOCAL\" \"$PWD/$BASE\"
Итак, вопросы, которые могут решить проблему:
- Как запустить файл.bat, указанный в записи cmd в difftool в gitconfig?
- Или: Как получить путь к временной папке Windows при запуске сценария, который вызывает Git, и Linux может понять, что копировать?
- Или: что я делаю не так, чтобы добиться этого?
1 ответ
По сути, difftool объявляет пакетный скрипт, который может работать с путем Windows, например:
/c/xxx
Это то, что я сделал в " Как просмотреть вывод" git diff "с помощью программы визуальных различий?" 4 года назад.
Но для более сложного сценария самый простой способ - создать отдельный (exe
или же jar
, как вы предлагаете), и вызвать его из пакетного сценария.