From patchwork Tue Aug 4 15:10:27 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [1, of, 4] debugrevspec: pass lookup function to visualize fallback mechanism From: Yuya Nishihara X-Patchwork-Id: 10100 Message-Id: To: mercurial-devel@selenic.com Date: Wed, 05 Aug 2015 00:10:27 +0900 # HG changeset patch # User Yuya Nishihara # Date 1437228138 -32400 # Sat Jul 18 23:02:18 2015 +0900 # Node ID d31439b19ed278f05b0c1e113fc9b48bb1627f7e # Parent d6106df97eddf20cf1a4c06dd3f0e77f9316442d debugrevspec: pass lookup function to visualize fallback mechanism The next patch will move the exceptional parsing of old-style ranges to revset.tokenize(). This patch will allow us to see the result tree. Note that the parsing result of '-a-b-c-' is incorrect at this changeset. It will be fixed soon. diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -2933,7 +2933,7 @@ def debugrevspec(ui, repo, expr, **opts) expansion. """ if ui.verbose: - tree = revset.parse(expr) + tree = revset.parse(expr, lookup=repo.__contains__) ui.note(revset.prettyformat(tree), "\n") newtree = revset.findaliases(ui, tree) if newtree != tree: @@ -2945,7 +2945,7 @@ def debugrevspec(ui, repo, expr, **opts) if opts["optimize"]: weight, optimizedtree = revset.optimize(newtree, True) ui.note("* optimized:\n", revset.prettyformat(optimizedtree), "\n") - func = revset.match(ui, expr) + func = revset.match(ui, expr, repo) revs = func(repo) if ui.verbose: ui.note("* set:\n", revset.prettyformatset(revs), "\n") diff --git a/tests/test-revset.t b/tests/test-revset.t --- a/tests/test-revset.t +++ b/tests/test-revset.t @@ -197,10 +197,16 @@ names that should work without quoting > 7 - $ try -- '-a-b-c-' # complains - hg: parse error at 7: not a prefix: end - [255] - $ log -a-b-c- # succeeds with fallback + +names that should be caught by fallback mechanism + + $ try -- '-a-b-c-' + (negate + ('symbol', 'a-b-c-')) + * set: + + 4 + $ log -a-b-c- 4 $ try -- -a-b-c--a # complains