[PATCH 2 of 3] revset: add an undocumented _missingancestors function

Siddharth Agarwal sid0 at fb.com
Thu Feb 13 16:10:31 CST 2014


# HG changeset patch
# User Siddharth Agarwal <sid0 at fb.com>
# Date 1392328485 28800
#      Thu Feb 13 13:54:45 2014 -0800
# Node ID b23315bb97257c5a8c2a6810990b19f5aa1dd2c7
# Parent  36f133144674e0f91b4c16d3ca49c01b3046f572
revset: add an undocumented _missingancestors function

This will be used in an upcoming patch to optimize expressions of the form
(::x - ::y).

diff --git a/mercurial/revset.py b/mercurial/revset.py
--- 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",


More information about the Mercurial-devel mailing list