Correct for possible directory changes in mercurial.dispatch.dispatch()
I ran across this when the hg unittests broke the vcs.base unittests:
$ python test.py libbe.storage.vcs.base libbe.storage.vcs.hg
...
OK
$ python test.py libbe.storage.vcs.hg libbe.storage.vcs.base
...
File ".../libbe/storage/vcs/base.py", line 914, in libbe.storage.vcs.base.VCSTestCase.Class._u_rel_path
Failed example:
vcs._u_rel_path("./a", ".")
Exception raised:
Traceback (most recent call last):
File "/usr/lib/python2.5/doctest.py", line 1228, in __run
compileflags, 1) in test.globs
File "<doctest libbe.storage.vcs.base.VCSTestCase.Class._u_rel_path[4]>", line 1, in <module>
vcs._u_rel_path("./a", ".")
File ".../libbe/storage/vcs/base.py", line 921, in _u_rel_path
path = os.path.abspath(path)
File "/usr/lib/python2.5/posixpath.py", line 403, in abspath
path = join(os.getcwd(), path)
OSError: [Errno 2] No such file or directory
...
FAILED (failures=1)