# HG changeset patch # User Pierre-Yves David # Date 1341595750 -7200 # Node ID 63a4a387160705480a98d714f839cb9cd69d7eb7 # Parent c18ecebed3f1dd794b36566210c368c2ee7afcd6 revset: add an `obsolete` symbol This predicate matches obsolete changesets. This is a naive implementation to be improved later. diff -r c18ecebed3f1 -r 63a4a3871607 mercurial/revset.py --- a/mercurial/revset.py Tue Jul 10 01:32:18 2012 +0200 +++ b/mercurial/revset.py Fri Jul 06 19:29:10 2012 +0200 @@ -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, _("obsolete 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 -r c18ecebed3f1 -r 63a4a3871607 tests/test-obsolete.t --- a/tests/test-obsolete.t Tue Jul 10 01:32:18 2012 +0200 +++ b/tests/test-obsolete.t Fri Jul 06 19:29:10 2012 +0200 @@ -193,7 +193,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