diff --git a/mercurial/revset.py b/mercurial/revset.py index 19b1c62cee1c83371780fa4621b8ac30f079c227_bWVyY3VyaWFsL3JldnNldC5weQ==..fb2df4506c8716ac02d295172e00dd1bc9eb928c_bWVyY3VyaWFsL3JldnNldC5weQ== 100644 --- a/mercurial/revset.py +++ b/mercurial/revset.py @@ -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",