Fix handling of paths when run outside the repo.
The main problem was that dirstate.getcwd() returned just "",
which was interpreted as "we're at the repo root". It now returns
an absolute path.
The util.pathto function was also changed to deal with the "cwd is
an absolute path" case.
#!/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"