# HG changeset patch # User Matt Harbison # Date 1433468990 14400 # Node ID 9724cbe2d546d3c662dfd815d018e3ecfbd3eec4 # Parent a592a6a6f4fe685c76b11bb0c08841b72fdc256d add: replace match.bad() monkey patching with match.badmatch() The previous code didn't restore the original method, but it looks like the worst that would happen is junk added to a list that had already been processed by previous subrepo invocation(s). diff -r a592a6a6f4fe -r 9724cbe2d546 mercurial/cmdutil.py --- a/mercurial/cmdutil.py Thu Jun 04 21:37:59 2015 -0400 +++ b/mercurial/cmdutil.py Thu Jun 04 21:49:50 2015 -0400 @@ -2213,15 +2213,16 @@ def add(ui, repo, match, prefix, explicitonly, **opts): join = lambda f: os.path.join(prefix, f) bad = [] - oldbad = match.bad - match.bad = lambda x, y: bad.append(x) or oldbad(x, y) + + badfn = lambda x, y: bad.append(x) or match.bad(x, y) names = [] wctx = repo[None] cca = None abort, warn = scmutil.checkportabilityalert(ui) if abort or warn: cca = scmutil.casecollisionauditor(ui, abort, repo.dirstate) - for f in wctx.walk(match): + + for f in wctx.walk(matchmod.badmatch(match, badfn)): exact = match.exact(f) if exact or not explicitonly and f not in wctx and repo.wvfs.lexists(f): if cca: