Problema de git difftool: no establecer variables LOCALES, REMOTAS

De acuerdo con el documento y varias respuestas aquí, git difftool invocará el ejecutable especificado (generalmente un script de shell) con las variables de entorno LOCAL y REMOTE configuradas en las routes de files. Pero cuando bash, LOCAL y REMOTO no están configurados. Probé la siguiente testing:

git config --global diff.tool mytest git config --global difftool.mytest.cmd mytest.sh git config --global difftool.prompt false 

con mytest.sh:

 #!/bin/sh echo "LOCAL:$LOCAL REMOTE:$REMOTE" 

invocar:

 git difftool --tool mytest <commitid> -- <path-to-file> 

salida:

 LOCAL: REMOTE: 

¿Alguna sugerencia?

Lo que significa la página man es que difftool. <Tool> .cmd puede tener $LOCAL y $REMOTE en su command-line. Esos serán reemplazados con las routes de files relevantes. No se pretende que esas variables se exporten a su entorno.

Para demostrar con un ejemplo, aquí hay una versión reelaborada de su configuration original.

 git config --global diff.tool mytest git config --global difftool.mytest.cmd 'mytest.sh $LOCAL $REMOTE' git config --global difftool.prompt false 

Esta es la envoltura de diff que siempre he usado (con tkdiff):

 #!/bin/sh # diff is called with 7 parameters: # path old-file old-hex old-mode new-file new-hex new-mode tkdiff "$2" "$5" 

Que usa parameters en lugar de $LOCAL y $REMOTE .