# HG changeset patch # User Matt Harbison # Date 2015-06-06 02:53:15 # Node ID 378a8e700e02794e991d3521423a4f581b635666 # Parent cc3d94e5994e524c121fcb4a62fba95366cd8514 largefiles: use the optional badfn argument when building a matcher The monkey patching in cat() can't be fixed, because it still delegates to the original bad(). Overriding commands.cat() should go away in favor overriding cmdutil.cat() anyway, and that matcher can be wrapped with matchmod.badmatch(). diff --git a/hgext/largefiles/lfutil.py b/hgext/largefiles/lfutil.py --- a/hgext/largefiles/lfutil.py +++ b/hgext/largefiles/lfutil.py @@ -241,16 +241,18 @@ def linktousercache(repo, hash): def getstandinmatcher(repo, rmatcher=None): '''Return a match object that applies rmatcher to the standin directory''' standindir = repo.wjoin(shortname) + + # no warnings about missing files or directories + badfn = lambda f, msg: None + if rmatcher and not rmatcher.always(): pats = [os.path.join(standindir, pat) for pat in rmatcher.files()] - match = scmutil.match(repo[None], pats) + match = scmutil.match(repo[None], pats, badfn=badfn) # if pats is empty, it would incorrectly always match, so clear _always match._always = False else: # no patterns: relative to repo root - match = scmutil.match(repo[None], [standindir]) - # no warnings about missing files or directories - match.bad = lambda f, msg: None + match = scmutil.match(repo[None], [standindir], badfn=badfn) return match def composestandinmatcher(repo, rmatcher):