unstable: do not consider internal phases when computing unstable
authorPierre-Yves David <pierre-yves.david@octobus.net>
Mon, 06 Nov 2023 23:17:10 +0100
changeset 51122 80bda4254b84
parent 51121 5d740f920640
child 51123 4224b1aa7ad8
child 51174 1625fe807c04
unstable: do not consider internal phases when computing unstable The revisions that are not part of the "working" set by other means should not be considered for the evolution related computation. This impact the test introduced in 5f9af8422b31 as this is actually a more semantic fix of the issue.
mercurial/obsolete.py
mercurial/phases.py
tests/test-phases.t
--- a/mercurial/obsolete.py	Mon Nov 06 23:15:58 2023 +0100
+++ b/mercurial/obsolete.py	Mon Nov 06 23:17:10 2023 +0100
@@ -939,7 +939,7 @@
 
 def _mutablerevs(repo):
     """the set of mutable revision in the repository"""
-    return repo._phasecache.getrevset(repo, phases.mutablephases)
+    return repo._phasecache.getrevset(repo, phases.relevant_mutable_phases)
 
 
 @cachefor(b'obsolete')
--- a/mercurial/phases.py	Mon Nov 06 23:15:58 2023 +0100
+++ b/mercurial/phases.py	Mon Nov 06 23:17:10 2023 +0100
@@ -165,6 +165,7 @@
 phasenumber2.update({b'%i' % phase: phase for phase in phasenames})
 # record phase property
 mutablephases = (draft, secret, archived, internal)
+relevant_mutable_phases = (draft, secret)  # could be obsolete or unstable
 remotehiddenphases = (secret, archived, internal)
 localhiddenphases = (internal, archived)
 
--- a/tests/test-phases.t	Mon Nov 06 23:15:58 2023 +0100
+++ b/tests/test-phases.t	Mon Nov 06 23:17:10 2023 +0100
@@ -1001,18 +1001,20 @@
      summary:     A
   
 The hidden commit is an orphan but doesn't show up without --hidden
+And internal changesets are not considered for unstability.
 
   $ hg debugobsolete `hg id --debug -ir 0`
   1 new obsolescence markers
   obsoleted 1 changesets
-  $ hg --hidden log -G -r 'unstable()'
-  *  changeset:   1:c01c42dffc7f
+  $ hg --hidden log -G -r '(0::) - 0'
+  o  changeset:   1:c01c42dffc7f
   |  tag:         tip
   ~  user:        test
      date:        Thu Jan 01 00:00:00 1970 +0000
-     instability: orphan
      summary:     my test internal commit
   
+  $ hg --hidden log -G -r 'unstable()'
+
   $ hg log -G -r 'unstable()'