[PATCH 4 of 4] doc: describe detail about checkambig optional argument
FUJIWARA Katsunori
foozy at lares.dti.ne.jp
Sun Jun 12 16:15:21 EDT 2016
# HG changeset patch
# User FUJIWARA Katsunori <foozy at lares.dti.ne.jp>
# Date 1465762316 -32400
# Mon Jun 13 05:11:56 2016 +0900
# Node ID a8dc7aac5e39d0982fce47a8b66ed206ecfd733e
# Parent 02167888292b1c6ce3f2993deff4612eaf0a7591
doc: describe detail about checkambig optional argument
This is followup for patches below, which add checkambig argument to
existing function.
- 731ced087a4b
- 76f1ea360c7e
- ce2d81aafbae
- a109bf7e0dc2
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.slock).
+ """
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.slock).
'''
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.slock).
+
+ 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.slock).
'''
def __init__(self, name, mode='w+b', createmode=None, checkambig=False):
self.__name = name # permanent name
More information about the Mercurial-devel
mailing list