# HG changeset patch # User Thomas Arendsen Hein # Date 1319455943 -7200 # Node ID ab600a25dfc03aa488dc2c30a152c2a5dbde1942 # Parent b74f74b482d8c875984216135e6ae1db17e401f0 posix: workaround for os.path.realpath bug in Python 2.4.1 and before os.path.realpath didn't resolve symlinks that were the first component of the path, see http://bugs.python.org/issue1213894 diff -r b74f74b482d8 -r ab600a25dfc0 mercurial/posix.py --- a/mercurial/posix.py Mon Oct 24 10:08:58 2011 +0200 +++ b/mercurial/posix.py Mon Oct 24 13:32:23 2011 +0200 @@ -199,6 +199,14 @@ return fcntl.fcntl(fd, F_GETPATH, '\0' * 1024).rstrip('\0') finally: os.close(fd) +elif sys.version_info < (2, 4, 2, 'final'): + # Workaround for http://bugs.python.org/issue1213894 (os.path.realpath + # didn't resolve symlinks that were the first component of the path.) + def realpath(path): + if os.path.isabs(path): + return os.path.realpath(path) + else: + return os.path.realpath('./' + path) else: # Fallback to the likely inadequate Python builtin function. realpath = os.path.realpath