# HG changeset patch # User FUJIWARA Katsunori # Date 2016-05-18 15:20:38 # Node ID 76f1ea360c7ebf4681296e9ed00273bd316adbb3 # Parent a109bf7e0dc2b2d4eefa6b6fd196494fbd0cac74 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 diff --git a/mercurial/scmutil.py b/mercurial/scmutil.py --- a/mercurial/scmutil.py +++ b/mercurial/scmutil.py @@ -502,7 +502,7 @@ class vfs(abstractvfs): 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 @@ class vfs(abstractvfs): 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 @@ class vfs(abstractvfs): 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)