doc: describe detail about checkambig optional argument
This is followup for patches below, which add checkambig argument to
existing function.
-
731ced087a4b
-
76f1ea360c7e
-
ce2d81aafbae
-
a109bf7e0dc2
--- a/mercurial/scmutil.py Sun Jun 12 14:07:26 2016 +0900
+++ b/mercurial/scmutil.py Mon Jun 13 05:11:56 2016 +0900
@@ -379,6 +379,12 @@
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 @@
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)
--- a/mercurial/util.py Sun Jun 12 14:07:26 2016 +0900
+++ b/mercurial/util.py Mon Jun 13 05:11:56 2016 +0900
@@ -1010,7 +1010,14 @@
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 @@
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