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, как вы предлагаете), и вызвать его из пакетного сценария.

Другие вопросы по тегам