diff tests/test-obsolete.t @ 35709:1a09dad8b85a

evolution: report new unstable changesets This adds a transaction summary callback that reports the number of new orphan, content-divergent and phase-divergent changesets. The code for reporting it is based on the code from the evolve extension, but simplified a bit. It simply counts the numbers for each kind of instability before and after the transaction. That's obviously not very efficient, but it's easy to reason about, so I'm doing this as a first step that can make us quite confident about the test case changes. We can optimize it later and make sure that the tests are not affected. The code has been used in the evolve extension for a long time and has apparently been sufficiently fast, so it doesn't seem like a pressing issue. Unlike the evolve extension's version of this report, this version applies to all commands (or all transactions run as part of any command, to be exact). Differential Revision: https://phab.mercurial-scm.org/D1867
author Martin von Zweigbergk <martinvonz@google.com>
date Sun, 14 Jan 2018 23:59:17 -0800
parents 7336ac5e786e
children 5cd60b0587a8
line wrap: on
line diff
--- a/tests/test-obsolete.t	Wed Jan 10 14:00:23 2018 -0800
+++ b/tests/test-obsolete.t	Sun Jan 14 23:59:17 2018 -0800
@@ -208,6 +208,7 @@
 Check that public changeset are not accounted as obsolete:
 
   $ hg --hidden phase --public 2
+  1 new phase-divergent changesets
   $ hg log -G
   @  5:5601fb93a350 (draft phase-divergent) [tip ] add new_3_c
   |
@@ -519,6 +520,7 @@
   $ mkcommit original_e
   $ hg debugobsolete --record-parents `getid original_d` -d '0 0'
   obsoleted 1 changesets
+  1 new orphan changesets
   $ hg debugobsolete | grep `getid original_d`
   94b33453f93bdb8d457ef9b770851a618bf413e1 0 {6f96419950729f3671185b847352890f074f7557} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
   $ hg log -r 'obsolete()'
@@ -583,6 +585,7 @@
   adding file changes
   added 6 changesets with 6 changes to 6 files (+1 heads)
   7 new obsolescence markers
+  1 new orphan changesets
 
 no warning displayed
 
@@ -918,7 +921,9 @@
 
   $ hg debugobsolete `getid obsolete_e`
   obsoleted 1 changesets
+  2 new orphan changesets
   $ hg debugobsolete `getid original_c` `getid babar`
+  1 new phase-divergent changesets
   $ hg log --config ui.logtemplate= -r 'phasedivergent() and orphan()'
   changeset:   7:50c51b361e60
   user:        test
@@ -1293,6 +1298,7 @@
   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
   $ echo aa > a
   $ hg amendtransient
+  1 new orphan changesets
   [1, 2]
 
 Test cache consistency for the visible filter