Tengo un repositorio de Git desde el cual necesito crear un archivo de parche en un formato que no sea el predeterminado git diff
. Mi caso de uso es que tengo una vieja máquina OSF/1 torpe en la que necesito aplicar el parche, y el programa /bin/patch
no comprende las diferencias unificadas.¿Cómo hacer que git-diff cree un formato de contexto diff?
Si uso GIT_EXTERNAL_DIFF=diff
, con la esperanza de que entonces puedo usar GIT_DIFF_OPTS=-c
para solicitar un diff formato de contexto, entonces mi (actual) del programa diff
se queja argumentos acerca de más en su línea de comandos:
diff: extra operand `373e5907b789a1398a91f4ceb4ab14e8a0ed4282'
diff: Try `diff --help' for more information.
external diff died, stopping at [filename].
Configuración GIT_EXTERNAL_DIFF=echo
muestra que Git parece correr el programa diff externo con:
$GIT_EXTERNAL_DIFF <file2> <file1> <hash> <mode> <tmpfilename> <hash> <mode>
Esto confunde diff
que no quiere que los argumentos adicionales. ¿Hay alguna manera fácil de decir git diff
para crear un formato de contexto de "estilo antiguo"?
(Mi plan actual es escribir un script de shell de una sola línea que llama a la verdadera diff
con sólo $1 $2
, pero espero que hay una manera menos incómoda.)
Si tenemos que conseguir el diff en el formato de contexto entre medio de 2 confirmaciones, ¿dónde tenemos que salir cometer el viejo y nuevo commit en, 'git difftool -y -t ctxdiff oldCommitHash newCommitHash' –