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 % init foo-base
hg init foo-base
echo % create alpha in first repo
cd foo-base
echo 'alpha' > alpha
hg ci -A -m 'add alpha' -d '1 0'
cd ..
echo % clone foo-base to foo-work
hg clone foo-base foo-work
echo % create beta in second repo
cd foo-work
echo 'beta' > beta
hg ci -A -m 'add beta' -d '2 0'
cd ..
echo % create gamma in first repo
cd foo-base
echo 'gamma' > gamma
hg ci -A -m 'add gamma' -d '3 0'
cd ..
echo % pull into work and merge
cd foo-work
hg pull -q
hg merge
echo % revert to changeset 1 to simulate a failed merge
rm alpha beta gamma
hg up -C 1