Add dirstate.pathto and localrepo.pathto.
Every time util.pathto is called, we have to pass the repo root and the
repo cwd.
dirstate.pathto is a simple convenience function that knows about the
root and the cwd arguments. It's still possible to pass the cwd as an
optimization.
localrepo.pathto is a convenience function that just calls
dirstate.pathto, just like localrepo.getcwd.
dirstate.pathto becomes a single point that converts most (all?) paths
from the internal representation to some OS-specific relative path for
display purposes.
#!/bin/sh
echo "[extensions]" >> $HGRCPATH
echo "extdiff=" >> $HGRCPATH
hg init a
cd a
echo a > a
hg add
hg extdiff -o -r $opt
echo "[extdiff]" >> $HGRCPATH
echo "cmd.falabala=echo" >> $HGRCPATH
echo "opts.falabala=diffing" >> $HGRCPATH
hg falabala
hg help falabala
hg ci -d '0 0' -mtest1
echo b >> a
hg ci -d '1 0' -mtest2
hg falabala -r 0:1
# test diff during merge
hg update 0
echo b >> b
hg add b
hg ci -m "new branch" -d '1 0'
hg update -C 1
hg merge tip
hg falabala || echo "diff-like tools yield a non-zero exit code"