From patchwork Tue Apr 15 00:40:42 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [8, of, 8, match] dirstate: report bad subdirectories as match.bad, not just a warning (BC) From: Mads Kiilerich X-Patchwork-Id: 4360 Message-Id: <3932af80549a6d2c2a6c.1397522442@mk-desktop> To: mercurial-devel@selenic.com Date: Tue, 15 Apr 2014 02:40:42 +0200 # HG changeset patch # User Mads Kiilerich # Date 1380816081 -7200 # Thu Oct 03 18:01:21 2013 +0200 # Node ID 3932af80549a6d2c2a6c9f811484597966d06fcd # Parent 6c995a3a1bc55be4c2d0a3d5de3bca7e901406fa dirstate: report bad subdirectories as match.bad, not just a warning (BC) This seems simpler and more correct. The only test coverage for this is test-permissions.t when it says: dir: Permission denied diff --git a/mercurial/dirstate.py b/mercurial/dirstate.py --- a/mercurial/dirstate.py +++ b/mercurial/dirstate.py @@ -637,10 +637,6 @@ class dirstate(object): # implementation doesn't use it at all. This satisfies the contract # because we only guarantee a "maybe". - def fwarn(f, msg): - self._ui.warn('%s: %s\n' % (self.pathto(f), msg)) - return False - if ignored: ignore = util.never dirignore = util.never @@ -695,7 +691,7 @@ class dirstate(object): entries = listdir(join(nd), stat=True, skip=skip) except OSError, inst: if inst.errno in (errno.EACCES, errno.ENOENT): - fwarn(nd, inst.strerror) + match.bad(self.pathto(nd), inst.strerror) continue raise for f, kind, st in entries: