У меня есть Git repo, из которого мне нужно создать файл патча в чем-то отличном от формата git diff
по умолчанию. Мой вариант использования: у меня есть неуклюжая старая машина OSF/1, на которой мне нужно применить патч, а программа /bin/patch
там не понимает унифицированных различий.Как сделать git-diff создать «контекстный» формат diff?
Если я использую GIT_EXTERNAL_DIFF=diff
, в надежде, что я могу затем использовать GIT_DIFF_OPTS=-c
запросить контекстный формат, то мой (современный) diff
программа жалуется на дополнительные аргументы по своей командной строке:
diff: extra operand `373e5907b789a1398a91f4ceb4ab14e8a0ed4282'
diff: Try `diff --help' for more information.
external diff died, stopping at [filename].
Установка GIT_EXTERNAL_DIFF=echo
показывает, что Git кажется запустить внешнюю программу просмотра различий с:
$GIT_EXTERNAL_DIFF <file2> <file1> <hash> <mode> <tmpfilename> <hash> <mode>
diff
Это путает, который не хочет, чтобы дополнительные аргументы. Есть ли простой способ сказать git diff
, чтобы создать формат «контекста» в стиле старого стиля?
(Мой текущий план должен написать скрипт один вкладыш, который вызывает реальную diff
с только $1 $2
, но я надеюсь, что есть менее неуклюжим способом.)
Если нам нужно, чтобы получить диф в формате контекста между ними 2 фиксаций, где нам нужно старое, фиксации и нового коммита в, 'git difftool -y -t ctxdiff oldCommitHash newCommitHash' –