tla and baz

I just gave bazaar a try today. It definitely looks nice, but one of
the main things I was hoping to get was a non-braindamaged diff
format. baz uses ‘baz diff’ instead of ‘tla changes –diffs’. This
is both easier to type and easier to discover…but it’s really lame
in that it doesn’t accept any of the normal options to GNU diff. This
is very counter-intuitive to me. In particular, there’s no way to get
it to show which C/C++ function each change is in (which would be done
by the -p option to GNU diff).

Of course, tla and baz
do make sure to take care of me by making it possible to get anything
I want done. Behold:

tla changes | grep "^M" | colrm 1 3 | xargs -n 1 -i diff                    \
-pu \{arch\}/++pristine-trees/unlocked/simple-iim/simple-iim--main/simple-ii\
m--main--1.0/newren@math.utah.edu--amr/simple-iim--main--1.0--patch-60/{} {}\
| less

or

baz status | grep "^ M" | colrm 1 4 | xargs -n 1 -i diff                    \
-pu \{arch\}/++pristine-trees/unlocked/simple-iim/simple-iim--main/simple-ii\
m--main--1.0/newren@math.utah.edu--amr/simple-iim--main--1.0--patch-60/{} {}\
| less

I would really like something that is, um, a little easier to remember
than these commands. Anyone know how to do this in a more simple
manner? I’d really like

  baz diff -up

to work. (Yes, the -u would be redundant since tla and baz made the
smart move of making unified diffs the default, but I’m used to typing
it anyway for CVS)

Update: Got a solution from Crispin. Create a wrapper called
‘diff’ which just does an ‘exec /usr/bin/diff -up “$@”‘, and make a
~/.arch-params/path file which contains the output of $PATH, but
prefixed with the directory where this wrapper resides. Works for
both baz and tla. Just a hack, but it’ll work fine until tla and baz
get their act together…