# HG changeset patch # User FUJIWARA Katsunori # Date 1465762316 -32400 # Node ID 4e6e280e238fa885df9e0e600dc5915a71c8a37a # Parent d269e7db2f55f812c9ee1efe5626602614174df3 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 -r d269e7db2f55 -r 4e6e280e238f mercurial/scmutil.py --- 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) diff -r d269e7db2f55 -r 4e6e280e238f mercurial/util.py --- 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