git difftool を実行すると、すべてのファイルに対してデフォルトの difftool が再帰的に実行されます。拡張子に基づいて適切な difftool を選択するスクリプトを作成し、スクリプトで git difftool -t mytool のように呼び出します。difftool はすべての引数を新しい呼び出しにリダイレクトします。これは良いことです。ただし、何らかの方法ですべてのファイル名もリダイレクトします。基本的に、変更されたすべてのファイルでカスタム difftool が渡されるため、私のスクリプトは役に立たなくなります。
私がやりたいことは、difftool を 1 つのファイルに制限するか、少なくとも残りではなく 1 つのファイルで私の diftool を呼び出すことです。基本的に、これは私のスクリプトで、これを .gitconfig のデフォルトの difftool として持っています。
if is_sbs $1 $2 ; then
#custom difftool which is also defined in .gitconfig
git dt -t rhapsody
else
#for all files
git dt -t kdiff3
fi