In Mercurial, you can define a template for external diff and merge tools (so that they are called only for files matching the specified template):
[diff-patterns]
**.ext = difftool
[merge-patterns]
**.ext = mergetool
How to define such patterns in Git?
Section[mergetool] in git -config (1) does not mention any template, mask or any similar.
EDIT
Here is the important part of my .git / config:
[diff]
tool = difftool
[difftool "difftool"]
cmd = difftool.git.sh "$LOCAL" "$REMOTE" "$BASE"
[merge]
tool = mergetool
[mergetool "mergetool"]
cmd = mergetool.git.sh "$LOCAL" "$REMOTE" "$BASE" "$MERGED"
Now it works for all files.
I want my diffftool and mergetool to be named only for files ending in.ext
EDIT
I added a .git / info / attributes file with the following contents:
*.ext diff=difftool
*.ext merge=mergetool
I also added
[diff "difftool"]
name = my custom diff driver
driver = difftool.git.sh %A %B %O
[merge "mergetool"]
name = my custom merge driver
driver = mergetool.git.sh %A %B %O %A
in my .git / config.
Now i run
git difftool
It calls KDiff3 instead of my diffftool. What am I doing wrong?
. diffftool mergetool, , , diffftool, , mergetool.
Difftool.
.git/:
[diff "difftool"]
command = difftool.git.sh
.git//:
.ext diff=difftool
difftool.git.sh( PATH)
#!/bin/sh
difftool.jar "$2" "$5"
Windows : git diff APPCRASH.
, git diff: git difftool git diff sh: sh -c "git diff"