diff --git a/mercurial/posix.py b/mercurial/posix.py --- a/mercurial/posix.py +++ b/mercurial/posix.py @@ -135,6 +135,18 @@ def checkexec(path): 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 diff --git a/mercurial/util.py b/mercurial/util.py --- a/mercurial/util.py +++ b/mercurial/util.py @@ -683,18 +683,6 @@ def fspath(name, root): return ''.join(result) -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 checknlink(testfile): '''check whether hardlink count reporting works properly''' diff --git a/mercurial/windows.py b/mercurial/windows.py --- a/mercurial/windows.py +++ b/mercurial/windows.py @@ -135,6 +135,9 @@ def set_flags(f, l, x): def checkexec(path): return False +def checklink(path): + return False + def set_binary(fd): # When run without console, pipes may expose invalid # fileno(), usually set to -1.