# HG changeset patch # User Yuya Nishihara # Date 1504101088 -32400 # Node ID 205c47e30a9361c77718e27c86d809799e7f853e # Parent de286200f72292e29f00cfac7db656d20fcc6dc4 revset: make match function follow given subset if specified (API) This should be sensible default since mfunc(subset) is roughly equivalent to 'subset & mfunc'. The order argument is still there so we can specify 'anyorder' if the order doesn't really matter. diff -r de286200f722 -r 205c47e30a93 mercurial/cmdutil.py --- a/mercurial/cmdutil.py Wed Aug 30 22:41:36 2017 +0900 +++ b/mercurial/cmdutil.py Wed Aug 30 22:51:28 2017 +0900 @@ -2559,7 +2559,7 @@ revs.sort(reverse=True) if expr: matcher = revset.match(repo.ui, expr) - revs = matcher(repo, revs, order=revset.followorder) + revs = matcher(repo, revs) if limit is not None: limitedrevs = [] for idx, rev in enumerate(revs): @@ -2585,7 +2585,7 @@ expr, filematcher = _makelogrevset(repo, pats, opts, revs) if expr: matcher = revset.match(repo.ui, expr) - revs = matcher(repo, revs, order=revset.followorder) + revs = matcher(repo, revs) if limit is not None: limitedrevs = [] for idx, r in enumerate(revs): diff -r de286200f722 -r 205c47e30a93 mercurial/revset.py --- a/mercurial/revset.py Wed Aug 30 22:41:36 2017 +0900 +++ b/mercurial/revset.py Wed Aug 30 22:51:28 2017 +0900 @@ -2163,7 +2163,12 @@ def makematcher(tree): """Create a matcher from an evaluatable tree""" - def mfunc(repo, subset=None, order=defineorder): + def mfunc(repo, subset=None, order=None): + if order is None: + if subset is None: + order = defineorder # 'x' + else: + order = followorder # 'subset & x' if subset is None: subset = fullreposet(repo) return getset(repo, subset, tree, order)