[PATCH 1 of 3] revset: allow repo.revs('%d', wdirrev)
Yuya Nishihara
yuya at tcha.org
Sat Mar 21 05:26:53 UTC 2020
# HG changeset patch
# User Yuya Nishihara <yuya at tcha.org>
# Date 1584764867 -32400
# Sat Mar 21 13:27:47 2020 +0900
# Node ID d0aa302e184789f1af3048814d23d0a4cedcca15
# Parent c1c2f6e0cd9f819389c18245d791c906023d9545
revset: allow repo.revs('%d', wdirrev)
Otherwise we can't write repo.revs('null:%d', subset.max()) to build
a smartset covering the range {null .. tip} + {wdir} if subset includes
wdir.
diff --git a/mercurial/revset.py b/mercurial/revset.py
--- a/mercurial/revset.py
+++ b/mercurial/revset.py
@@ -2108,7 +2108,8 @@ def _rev(repo, subset, x):
except (TypeError, ValueError):
# i18n: "rev" is a keyword
raise error.ParseError(_(b"rev expects a number"))
- repo.changelog.node(l) # check that the rev exists
+ if l not in _virtualrevs:
+ repo.changelog.node(l) # check that the rev exists
return subset & baseset([l])
diff --git a/tests/test-template-functions.t b/tests/test-template-functions.t
--- a/tests/test-template-functions.t
+++ b/tests/test-template-functions.t
@@ -1263,6 +1263,13 @@ default. join() should agree with the de
5:13207e5a10d9fd28ec424934298e176197f2c67f,
4:bbe44766e73d5f11ed2177f1838de10c53ef3e74
+%d parameter handling:
+
+ $ hg log -T '{revset("%d", rev)}\n' -r'wdir()'
+ 2147483647
+ $ hg log -T '{revset("%d", rev)}\n' -r'null'
+ -1
+
Invalid arguments passed to revset()
$ hg log -T '{revset("%whatever", 0)}\n'
More information about the Mercurial-devel
mailing list