mercurial/posix.py
branchstable
changeset 15353 ab600a25dfc0
parent 15056 8413916df816
child 15488 6eff984d8e76
--- 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