--- a/mercurial/posix.py Tue Nov 29 07:20:03 2016 -0800
+++ b/mercurial/posix.py Wed Nov 30 16:39:36 2016 +0000
@@ -231,10 +231,18 @@
cachedir = None
name = tempfile.mktemp(dir=checkdir, prefix='checklink-')
try:
- fd = tempfile.NamedTemporaryFile(dir=checkdir,
- prefix='hg-checklink-')
+ fd = None
+ if cachedir is None:
+ fd = tempfile.NamedTemporaryFile(dir=checkdir,
+ prefix='hg-checklink-')
+ target = os.path.basename(fd.name)
+ else:
+ # create a fixed file to link to; doesn't matter if it
+ # already exists.
+ target = 'checklink-target'
+ open(os.path.join(cachedir, target), 'w').close()
try:
- os.symlink(os.path.basename(fd.name), name)
+ os.symlink(target, name)
if cachedir is None:
os.unlink(name)
else:
@@ -249,7 +257,8 @@
continue
raise
finally:
- fd.close()
+ if fd is not None:
+ fd.close()
except AttributeError:
return False
except OSError as inst: