mercurial/posix.py
changeset 13890 31eb145b50b6
parent 13879 5b0a3f6cbead
child 13916 98ee3dd5bab4
--- a/mercurial/posix.py	Tue Apr 05 16:55:47 2011 +0800
+++ b/mercurial/posix.py	Tue Apr 05 11:55:52 2011 +0200
@@ -135,6 +135,18 @@
         return False
     return not (new_file_has_exec or exec_flags_cannot_flip)
 
+def checklink(path):
+    """check whether the given path is on a symlink-capable filesystem"""
+    # mktemp is not racy because symlink creation will fail if the
+    # file already exists
+    name = tempfile.mktemp(dir=path, prefix='hg-checklink-')
+    try:
+        os.symlink(".", name)
+        os.unlink(name)
+        return True
+    except (OSError, AttributeError):
+        return False
+
 def set_binary(fd):
     pass