Ho un repository Git da cui ho bisogno di creare un file patch in qualcosa di diverso dal formato predefinito git diff
. Il mio caso d'uso è che ho un vecchio macchinista OSF/1 su cui ho bisogno di applicare la patch, e il programma /bin/patch
non comprende le differenze unificate.Come rendere git-diff creare un formato "contesto" diff?
Se uso GIT_EXTERNAL_DIFF=diff
, sperando che posso poi usare GIT_DIFF_OPTS=-c
richiedere un diff formato di contesto, quindi il mio (attuale) programma diff
lamenta argomentazioni circa supplementari sulla propria linea di comando:
diff: extra operand `373e5907b789a1398a91f4ceb4ab14e8a0ed4282'
diff: Try `diff --help' for more information.
external diff died, stopping at [filename].
Impostazione GIT_EXTERNAL_DIFF=echo
mostra che Git sembra per eseguire il programma diff esterno con:
$GIT_EXTERNAL_DIFF <file2> <file1> <hash> <mode> <tmpfilename> <hash> <mode>
Questo confonde diff
che non vuole gli argomenti extra. C'è un modo semplice per dire a git diff
di creare un formato "contesto" vecchio stile diff?
(Il mio piano attuale è quello di scrivere uno script di shell one-liner che chiama il vero diff
con appena $1 $2
, ma spero ci sia un modo meno imbarazzante.)
Se abbiamo bisogno di ottenere il diff nel formato contesto inbetween 2 commit, dove abbiamo bisogno di fuori del vecchio commit e nuovo commit in, 'git difftool -y -t ctxdiff oldCommitHash newCommitHash' –