changeset 39902:a477679f6323

pullreport: skip filtered revs instead of obsolete ones Obsolescence is closely related to visibility but still a distinct concept. We can receive changesets that are obsolete but visible (eg: when pulling orphans). Such changeset should be reported too. In addition, the filtering level can be anything, we should respect it.
author Boris Feld <boris.feld@octobus.net>
date Thu, 27 Sep 2018 16:35:10 +0200
parents 642cbc228bad
children b5e12039e6e0
files mercurial/scmutil.py tests/test-obsolete-distributed.t
diffstat 2 files changed, 4 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/scmutil.py	Thu Sep 27 18:06:13 2018 +0200
+++ b/mercurial/scmutil.py	Thu Sep 27 16:35:10 2018 +0200
@@ -39,6 +39,7 @@
     pycompat,
     revsetlang,
     similar,
+    smartset,
     url,
     util,
     vfs,
@@ -1622,11 +1623,9 @@
             if origrepolen >= len(repo):
                 return
 
-            # Compute the bounds of new revisions' range, excluding obsoletes.
-            unfi = repo.unfiltered()
-            revs = unfi.revs('%d: and not obsolete()', origrepolen)
+            # Compute the bounds of new visible revisions' range.
+            revs = smartset.spanset(repo, start=origrepolen)
             if not revs:
-                # Got only obsoletes.
                 return
             minrev, maxrev = repo[revs.min()], repo[revs.max()]
 
--- a/tests/test-obsolete-distributed.t	Thu Sep 27 18:06:13 2018 +0200
+++ b/tests/test-obsolete-distributed.t	Thu Sep 27 16:35:10 2018 +0200
@@ -537,5 +537,5 @@
   added 2 changesets with 0 changes to 0 files
   1 new obsolescence markers
   1 new orphan changesets
-  new changesets 95d586532b49 (1 drafts)
+  new changesets 66f7d451a68b:95d586532b49 (2 drafts)
   (run 'hg update' to get a working copy)