diff --git a/mercurial/scmutil.py b/mercurial/scmutil.py --- a/mercurial/scmutil.py +++ b/mercurial/scmutil.py @@ -379,6 +379,12 @@ class abstractvfs(object): return util.readlock(self.join(path)) def rename(self, src, dst, checkambig=False): + """Rename from src to dst + + checkambig argument is used with util.filestat, and is useful + only if destination file is guarded by any lock + (e.g. repo.lock or repo.wlock). + """ dstpath = self.join(dst) oldstat = checkambig and util.filestat(dstpath) if oldstat and oldstat.stat: @@ -533,7 +539,9 @@ class vfs(abstractvfs): 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). + ``checkambig`` argument is passed to atomictemplfile (valid + only for writing), and is useful only if target file is + guarded by any lock (e.g. repo.lock or repo.wlock). ''' if self._audit: r = util.checkosfilename(path) diff --git a/mercurial/util.py b/mercurial/util.py --- a/mercurial/util.py +++ b/mercurial/util.py @@ -1010,7 +1010,14 @@ def checksignature(func): def copyfile(src, dest, hardlink=False, copystat=False, checkambig=False): '''copy a file, preserving mode and optionally other stat info like - atime/mtime''' + atime/mtime + + checkambig argument is used with filestat, and is useful only if + destination file is guarded by any lock (e.g. repo.lock or + repo.wlock). + + copystat and checkambig should be exclusive. + ''' assert not (copystat and checkambig) oldstat = None if os.path.lexists(dest): @@ -1463,6 +1470,10 @@ class atomictempfile(object): the temporary copy to the original name, making the changes visible. If the object is destroyed without being closed, all your writes are discarded. + + checkambig argument of constructor is used with filestat, and is + useful only if target file is guarded by any lock (e.g. repo.lock + or repo.wlock). ''' def __init__(self, name, mode='w+b', createmode=None, checkambig=False): self.__name = name # permanent name