From patchwork Sat Mar 21 05:26:55 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [3, of, 3] revset: leverage internal _rev() function to implement rev() From: Yuya Nishihara X-Patchwork-Id: 45860 Message-Id: <98b60b759e2623db637a.1584768415@mimosa> To: mercurial-devel@mercurial-scm.org Date: Sat, 21 Mar 2020 14:26:55 +0900 # HG changeset patch # User Yuya Nishihara # Date 1584765728 -32400 # Sat Mar 21 13:42:08 2020 +0900 # Node ID 98b60b759e2623db637a2ff68eadd5b7e6a8dc12 # Parent 1c189a6e5aa76bf71d5078597fd01c1f959244a2 revset: leverage internal _rev() function to implement rev() Now 'rev(n)' is identical to 'present(_rev(n))'. diff --git a/mercurial/revset.py b/mercurial/revset.py --- a/mercurial/revset.py +++ b/mercurial/revset.py @@ -2082,19 +2082,11 @@ def removes(repo, subset, x): @predicate(b'rev(number)', safe=True) def rev(repo, subset, x): - """Revision with the given numeric identifier. - """ - # i18n: "rev" is a keyword - l = getargs(x, 1, 1, _(b"rev requires one argument")) + """Revision with the given numeric identifier.""" try: - # i18n: "rev" is a keyword - l = int(getstring(l[0], _(b"rev requires a number"))) - except (TypeError, ValueError): - # i18n: "rev" is a keyword - raise error.ParseError(_(b"rev expects a number")) - if l not in repo.changelog and l not in _virtualrevs: + return _rev(repo, subset, x) + except error.RepoLookupError: return baseset() - return subset & baseset([l]) @predicate(b'_rev(number)', safe=True)