[PATCH 3 of 8] revset: add an `obsolete` symbol

Pierre-Yves David pierre-yves.david at ens-lyon.org
Thu Jul 5 19:27:25 CDT 2012


# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at logilab.fr>
# Date 1341532071 -7200
# Node ID ecafdf5e839891c83dba6245bcf087d87c2b6263
# Parent  eb9bc47c436b0719a45503d0577a7864ccccbd4f
revset: add an `obsolete` symbol

This predicate march obsolete changesets.

This is a naive implementation to be improved later.

diff --git a/mercurial/revset.py b/mercurial/revset.py
--- a/mercurial/revset.py
+++ b/mercurial/revset.py
@@ -875,6 +875,12 @@
 
     return [r for r in subset if r == rn]
 
+def obsolete(repo, subset, x):
+    """``obsolete()``
+    Mutable changeset with a newer version."""
+    getargs(x, 0, 0, _("merge takes no arguments"))
+    return [r for r in subset if repo[r].obsolete()]
+
 def outgoing(repo, subset, x):
     """``outgoing([path])``
     Changesets not found in the specified destination repository, or the
@@ -1369,6 +1375,7 @@
     "merge": merge,
     "min": minrev,
     "modifies": modifies,
+    "obsolete": obsolete,
     "outgoing": outgoing,
     "p1": p1,
     "p2": p2,
diff --git a/tests/test-obsolete.t b/tests/test-obsolete.t
--- a/tests/test-obsolete.t
+++ b/tests/test-obsolete.t
@@ -174,7 +174,7 @@
   abort: push includes an obsolete changeset: cdbce2fbb163!
   [255]
   $ hg -R tmpd debugobsolete
-  $ hg -R tmpb push tmpd --rev 5601fb93a350 --rev 245bde4270cd
+  $ hg -R tmpb push tmpd --rev 'not obsolete()'
   pushing to tmpd
   searching for changes
   adding changesets


More information about the Mercurial-devel mailing list