--- a/mercurial/util.py Sun Sep 03 02:34:01 2017 +0530
+++ b/mercurial/util.py Fri Sep 01 17:09:53 2017 -0700
@@ -1457,21 +1457,14 @@
# testfile may be open, so we need a separate file for checking to
# work around issue2543 (or testfile may get lost on Samba shares)
- f1 = testfile + ".hgtmp1"
- if os.path.lexists(f1):
- return False
+ f1, f2, fd = None, None, None
try:
- posixfile(f1, 'w').close()
- except IOError:
- try:
- os.unlink(f1)
- except OSError:
- pass
- return False
-
- f2 = testfile + ".hgtmp2"
- fd = None
- try:
+ fd, f1 = tempfile.mkstemp(prefix='.%s-' % os.path.basename(testfile),
+ suffix='1~', dir=os.path.dirname(testfile))
+ os.close(fd)
+ fd = None
+ f2 = '%s2~' % f1[:-2]
+
oslink(f1, f2)
# nlinks() may behave differently for files on Windows shares if
# the file is open.
@@ -1484,7 +1477,8 @@
fd.close()
for f in (f1, f2):
try:
- os.unlink(f)
+ if f is not None:
+ os.unlink(f)
except OSError:
pass