# HG changeset patch # User FUJIWARA Katsunori # Date 1499177627 -32400 # Node ID d1db7af815480c649bb1a249bbca8bcf65406271 # Parent 6af0f023d0142c23396e70df03f05830598607f0 vfs: add explanation about cost of checkambig=True in corner case diff -r 6af0f023d014 -r d1db7af81548 mercurial/vfs.py --- a/mercurial/vfs.py Tue Jul 04 23:13:47 2017 +0900 +++ b/mercurial/vfs.py Tue Jul 04 23:13:47 2017 +0900 @@ -190,6 +190,11 @@ 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). + + To avoid file stat ambiguity forcibly, checkambig=True involves + copying ``src`` file, if it is owned by another. Therefore, use + checkambig=True only in limited cases (see also issue5418 and + issue5584 for detail). """ srcpath = self.join(src) dstpath = self.join(dst) @@ -343,6 +348,12 @@ ``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). + + To avoid file stat ambiguity forcibly, checkambig=True involves + copying ``path`` file opened in "append" mode (e.g. for + truncation), if it is owned by another. Therefore, use + combination of append mode and checkambig=True only in limited + cases (see also issue5418 and issue5584 for detail). ''' if auditpath: if self._audit: