看來,當git difftool
執行外部命令時,它不會正確引用參數。`git difftool`和witespaces在名稱文件中
如果.gitconfig
包含以下行:
[difftool.echo]
cmd = echo "$LOCAL" "$REMOTE"
當我嘗試用包含空格的路徑運行difftool
,如
> git difftool -t echo HEAD^ HEAD spaces\ here/test.txt
我得到以下結果:
/tmp/RL2Nyi_test.txt spaces here/test.txt
正如你所看到的,文件名不被引用(儘管ex在命令中使用plicit引號),因此參數解析失敗。刪除.gitconfig
(編輯:以及將它們轉義爲\"
)中的引號不會改變結果。
(用任何diff程序代替echo
,你會得到更有意義的用例)。
如何獲得正確轉義的文件名?
我認爲你必須逃脫引號:'CMD =回聲\ 「$ LOCAL \」 \ 「$ REMOTE \」' – CharlesB
我也嘗試過,仍然沒有改變。 –
'cmd =「echo」$ LOCAL \「\」$ REMOTE \「」'',cmd =「echo'$ LOCAL''$ REMOTE'」''? – CharlesB