revset: add an undocumented _missingancestors function
This will be used in an upcoming patch to optimize expressions of the form
(::x - ::y).
--- a/mercurial/revset.py Thu Feb 13 13:52:45 2014 -0800
+++ b/mercurial/revset.py Thu Feb 13 13:54:45 2014 -0800
@@ -1021,6 +1021,16 @@
return baseset([m])
return baseset([])
+def _missingancestors(repo, subset, x):
+ # i18n: "_missingancestors" is a keyword
+ revs, bases = getargs(x, 2, 2,
+ _("_missingancestors requires two arguments"))
+ rs = baseset(repo)
+ revs = getset(repo, rs, revs)
+ bases = getset(repo, rs, bases)
+ missing = set(repo.changelog.findmissingrevs(bases, revs))
+ return baseset([r for r in subset if r in missing])
+
def modifies(repo, subset, x):
"""``modifies(pattern)``
Changesets modifying files matched by pattern.
@@ -1602,6 +1612,7 @@
"max": maxrev,
"merge": merge,
"min": minrev,
+ "_missingancestors": _missingancestors,
"modifies": modifies,
"obsolete": obsolete,
"origin": origin,
@@ -1671,6 +1682,7 @@
"max",
"merge",
"min",
+ "_missingancestors",
"modifies",
"obsolete",
"origin",