fileset: suppress EACCES while reading arbitrary paths via filectx API stable
authorYuya Nishihara <yuya@tcha.org>
Sun, 29 Jul 2018 16:25:51 +0900
branchstable
changeset 38758 774f92710a81
parent 38757 d49e490a9e85
child 38759 f8cbff2184d7
fileset: suppress EACCES while reading arbitrary paths via filectx API On Windows, EACCES is raised in place of EISDIR. This patch simply adds EACCES to the list of errors to be ignored since I think it's okay for filesets to treat inaccessible working-copy files as not existing.
mercurial/fileset.py
--- a/mercurial/fileset.py	Fri Jul 27 14:56:10 2018 +0300
+++ b/mercurial/fileset.py	Sun Jul 29 16:25:51 2018 +0900
@@ -592,7 +592,9 @@
                 try:
                     return predfn(fctx)
                 except (IOError, OSError) as e:
-                    if e.errno in (errno.ENOENT, errno.ENOTDIR, errno.EISDIR):
+                    # open()-ing a directory fails with EACCES on Windows
+                    if e.errno in (errno.ENOENT, errno.EACCES, errno.ENOTDIR,
+                                   errno.EISDIR):
                         return False
                     raise
         else: