In Git one can specify these in .gitattributes and perform some additional configuration:
git config diff.difftool.command ...
git config merge.mergetool.driver ...
In Mercurial it is possible to specify patterns in hgrc file ([diff-patterns] and [merge-patterns] sections).
How to achieve this in Subversion?
The red-book for Subversion (normally the source of all knowledge) is not too specific here. It names that there is the option to configure
diff-cmdanddiff3-cmdand that it is possible to add extensions to the call.However, it states the following:
It does not say how to influence that decision 🙁
If you are using the tool TortoiseSVN, there are configuration options included to specify the used diff tool per mime-type of the file under consideration. The path to that configuration is:
TortoiseSVN > Settings > External Programs > Diff Viewer > Advanced.... Perhaps that is an option for you.My personal opinion here is that the subversion team thinks that you should use a wrapper as diff-tool anyway, and to do there the decision what tool to use with which specific configuration based on the mime-type.