# HG changeset patch # User Siddharth Agarwal # Date 1392328485 28800 # Node ID fb2df4506c8716ac02d295172e00dd1bc9eb928c # Parent 19b1c62cee1c83371780fa4621b8ac30f079c227 revset: add an undocumented _missingancestors function This will be used in an upcoming patch to optimize expressions of the form (::x - ::y). diff -r 19b1c62cee1c -r fb2df4506c87 mercurial/revset.py --- 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",