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
hg init
echo a > a
hg add a
hg commit -m "test" -d "1000000 0"
hg history
hg tag -d "1000000 0" "bleah"
hg history
echo foo >> .hgtags
hg tag -d "1000000 0" "bleah2" || echo "failed"
hg tag -d "1000000 0" -r 0 "bleah2" 1 || echo "failed"
hg revert .hgtags
hg tag -d "1000000 0" -r 0 "bleah0"
hg tag -l -d "1000000 0" "bleah1" 1
cat .hgtags
cat .hg/localtags
hg update 0
hg tag -d "1000000 0" "foobar"
cat .hgtags
cat .hg/localtags
hg tag -l 'xx
newline'
hg tag -l 'xx:xx'
true