I am filing this as P2 as it does require a rather ugly workaround, namely an extra shebang instead of a simple alias. Buddy check: ehu in #svn agreed that the current behaviour is dubious, at best. Rationale for priority: While not a large problem as such, it still requires extra effort to work around the issue Estimated time: Between 30 minutes and a few hours, depending on sophistication of the solution. Problem: When you call svn diff --diff-cmd $foo svn will try to execute $foo literally, i.e. as a single command without parameters or anything. Anything more complex than calling a single program without any parameters will fail. Expected Behaviour: $foo should be passed to a subshell for parsing and execution. Proposed solution: Ideally, $foo would get passed to, parsed & executed in the standard shell of the user, but /bin/sh will do as well. Honoring variables and functions in the parent shell would be a definite plus.
Original issue reported by richih