diff --git a/mercurial/context.py b/mercurial/context.py --- a/mercurial/context.py +++ b/mercurial/context.py @@ -8,6 +8,7 @@ from node import nullid, nullrev, short, hex from i18n import _ import ancestor, bdiff, error, util, scmutil, subrepo, patch, encoding +import match as matchmod import os, errno, stat propertycache = util.propertycache @@ -208,6 +209,11 @@ class changectx(object): def sub(self, path): return subrepo.subrepo(self, path) + def match(self, pats=[], include=None, exclude=None, default='glob'): + r = self._repo + return matchmod.match(r.root, r.getcwd(), pats, + include, exclude, default, auditor=r.auditor) + def diff(self, ctx2=None, match=None, **opts): """Returns a diff generator for the given contexts and matcher""" if ctx2 is None: diff --git a/mercurial/scmutil.py b/mercurial/scmutil.py --- a/mercurial/scmutil.py +++ b/mercurial/scmutil.py @@ -563,9 +563,8 @@ def match(repo, pats=[], opts={}, globbe pats = [] if not globbed and default == 'relpath': pats = expandpats(pats or []) - m = matchmod.match(repo.root, repo.getcwd(), pats, - opts.get('include'), opts.get('exclude'), default, - auditor=repo.auditor) + m = repo[None].match(pats, opts.get('include'), opts.get('exclude'), + default) def badfn(f, msg): repo.ui.warn("%s: %s\n" % (m.rel(f), msg)) m.bad = badfn