vfs: make atomictempfile avoid ambiguity of file stat if needed
authorFUJIWARA Katsunori <foozy@lares.dti.ne.jp>
Thu, 19 May 2016 00:20:38 +0900
changeset 29202 76f1ea360c7e
parent 29201 a109bf7e0dc2
child 29203 731ced087a4b
vfs: make atomictempfile avoid ambiguity of file stat if needed This patch is a part of preparation for "Exact Cache Validation Plan": https://www.mercurial-scm.org/wiki/ExactCacheValidationPlan
mercurial/scmutil.py
--- a/mercurial/scmutil.py	Thu May 19 00:20:38 2016 +0900
+++ b/mercurial/scmutil.py	Thu May 19 00:20:38 2016 +0900
@@ -502,7 +502,7 @@
         os.chmod(name, self.createmode & 0o666)
 
     def __call__(self, path, mode="r", text=False, atomictemp=False,
-                 notindexed=False, backgroundclose=False):
+                 notindexed=False, backgroundclose=False, checkambig=False):
         '''Open ``path`` file, which is relative to vfs root.
 
         Newly created directories are marked as "not to be indexed by
@@ -521,6 +521,8 @@
            closing a file on a background thread and reopening it. (If the
            file were opened multiple times, there could be unflushed data
            because the original file handle hasn't been flushed/closed yet.)
+
+        ``checkambig`` is passed to atomictempfile (valid only for writing).
         '''
         if self._audit:
             r = util.checkosfilename(path)
@@ -540,7 +542,8 @@
             if basename:
                 if atomictemp:
                     util.makedirs(dirname, self.createmode, notindexed)
-                    return util.atomictempfile(f, mode, self.createmode)
+                    return util.atomictempfile(f, mode, self.createmode,
+                                               checkambig=checkambig)
                 try:
                     if 'w' in mode:
                         util.unlink(f)