diff -r 9a96efc4af8a -r 31eb145b50b6 mercurial/posix.py --- 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