Mercurial > hg
diff tests/test-rebase-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 | 35a0f6f31eef |
line wrap: on
line diff
--- a/tests/test-rebase-obsolete.t Wed Jan 10 14:00:23 2018 -0800 +++ b/tests/test-rebase-obsolete.t Sun Jan 14 23:59:17 2018 -0800 @@ -182,6 +182,7 @@ $ hg rebase --rev 'desc(D)' --dest 'desc(H)' rebasing 9:08483444fef9 "D" + 1 new orphan changesets $ hg debugobsolete 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 0 {cd010b8cd998f3981a5a8115f94f8da4ab506089} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'rebase', 'user': 'test'} 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 5ae4c968c6aca831df823664e706c9d4aa34473d 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'} @@ -460,6 +461,7 @@ 9:cf44d2f5a9f4 D (no-eol) $ hg rebase -r 8 rebasing 8:e273c5e7d2d2 "C" + 1 new orphan changesets $ hg log -G o 11:0d8f238b634c C | @@ -582,6 +584,7 @@ rebasing 3:32af7686d403 "D" rebasing 7:02de42196ebe "H" rebasing 9:4bde274eefcf "I" (tip) + 1 new orphan changesets $ hg log -G @ 12:acd174b7ab39 I | @@ -616,12 +619,14 @@ $ echo J > J $ hg add J $ hg commit -m J + 1 new orphan changesets $ hg debugobsolete `hg log --rev . -T '{node}'` obsoleted 1 changesets $ hg rebase --rev .~1::. --dest 'max(desc(D))' --traceback --config experimental.rebaseskipobsolete=off rebasing 9:4bde274eefcf "I" rebasing 13:06edfc82198f "J" (tip) + 2 new content-divergent changesets $ hg log -G @ 15:5ae8a643467b J | @@ -656,6 +661,7 @@ $ echo "K" > K $ hg add K $ hg commit --amend -m "K" + 1 new orphan changesets $ echo "L" > L $ hg add L $ hg commit -m "L" @@ -664,6 +670,7 @@ $ echo "M" > M $ hg add M $ hg commit --amend -m "M" + 1 new orphan changesets $ hg log -G @ 18:bfaedf8eb73b M | @@ -702,6 +709,7 @@ $ hg rebase -s 14 -d 17 --config experimental.rebaseskipobsolete=True note: not rebasing 14:9ad579b4a5de "I", already in destination as 16:fc37a630c901 "K" rebasing 15:5ae8a643467b "J" + 1 new orphan changesets $ cd .. @@ -732,6 +740,7 @@ $ echo C > C $ hg add C $ hg commit -m C + 1 new orphan changesets $ hg log -G @ 4:212cb178bcbb C | @@ -756,6 +765,7 @@ $ echo D > D $ hg add D $ hg commit -m D + 1 new orphan changesets $ hg --hidden strip -r 'desc(B1)' saved backup bundle to $TESTTMP/obsskip/.hg/strip-backup/86f6414ccda7-b1c452ee-backup.hg $ hg log -G @@ -796,6 +806,7 @@ $ hg debugobsolete `hg log -r 7 -T '{node}\n'` --config experimental.evolution=true obsoleted 1 changesets + 1 new orphan changesets $ hg rebase -d 6 -r "4::" rebasing 4:ff2c4d47b71d "C" note: not rebasing 7:360bbaa7d3ce "O", it has no successor @@ -871,6 +882,7 @@ $ echo "bar" > foo $ hg add foo $ hg commit -m "bar foo" + 1 new orphan changesets $ hg log -G @ 14:73568ab6879d bar foo | @@ -922,6 +934,7 @@ $ hg rebase -s 10 -d 12 --config experimental.evolution.allowdivergence=True rebasing 10:121d9e3bc4c6 "P" rebasing 14:73568ab6879d "bar foo" (tip) + 2 new content-divergent changesets $ hg summary parent: 16:61bd55f69bc4 tip bar foo @@ -961,6 +974,7 @@ $ hg commit -m "dummy change" $ hg debugobsolete `hg log -r ".^" -T '{node}'` `hg log -r 18 -T '{node}'` --config experimental.evolution=true obsoleted 1 changesets + 1 new orphan changesets $ hg log -G -r 16:: @ 21:7bdc8a87673d dummy change @@ -1020,6 +1034,7 @@ > \| > a > EOF + 1 new orphan changesets $ hg log -G -r 'a':: * 7:1143e9adc121 f | @@ -1087,6 +1102,8 @@ rebasing 3:a82ac2b38757 "c" (c) rebasing 4:76be324c128b "d" (d) rebasing 7:1143e9adc121 "f" (f tip) + 1 new orphan changesets + 2 new content-divergent changesets $ hg log -G -r 'a':: -T instabilities o 10:e1744ea07510 f | @@ -1118,6 +1135,8 @@ rebasing 3:a82ac2b38757 "c" (c) rebasing 4:76be324c128b "d" (d) rebasing 7:1143e9adc121 "f" (f tip) + 1 new orphan changesets + 2 new content-divergent changesets $ hg strip -r 0: @@ -1136,6 +1155,7 @@ > \| > a > EOF + 1 new orphan changesets $ hg log -G -r 'a': * 8:2876ce66c6eb g | @@ -1206,6 +1226,7 @@ > \|/ > A > EOF + 1 new orphan changesets $ hg rebase -d B -s D note: not rebasing 2:b18e25de2cf5 "D" (D), already in destination as 1:112478962961 "B" (B) @@ -1237,6 +1258,7 @@ > \|/ > A > EOF + 1 new orphan changesets $ hg rebase -d B -s E note: not rebasing 3:7fb047a69f22 "E" (E), already in destination as 1:112478962961 "B" (B) @@ -1268,6 +1290,7 @@ > \|/ > A > EOF + 1 new orphan changesets $ hg rebase -d C -s D note: not rebasing 2:b18e25de2cf5 "D" (D), already in destination as 1:112478962961 "B" (B) @@ -1302,6 +1325,7 @@ > \|/ > A > EOF + 1 new orphan changesets $ hg rebase -d C -s E note: not rebasing 3:7fb047a69f22 "E" (E), already in destination as 1:112478962961 "B" (B) @@ -1335,6 +1359,7 @@ > \|/ > A > EOF + 1 new orphan changesets $ hg rebase -d C -b F rebasing 2:b18e25de2cf5 "D" (D) @@ -1370,6 +1395,7 @@ > \|/ > A > EOF + 1 new orphan changesets $ hg rebase -d C -b F note: not rebasing 2:b18e25de2cf5 "D" (D), already in destination as 1:112478962961 "B" (B) @@ -1405,6 +1431,7 @@ > | | > X Y > EOS + 1 new orphan changesets $ hg rebase -r A+B+E -d F note: not rebasing 4:a3d17304151f "A" (A), already in destination as 0:96cc3511f894 "C" (C) note: not rebasing 5:b23a2cc00842 "B" (B), already in destination as 1:058c1e1fb10a "D" (D) @@ -1423,6 +1450,7 @@ > /| | # replace: A -> C > A B C # D/D = D > EOS + 1 new orphan changesets $ hg rebase -r A+B+D -d Z note: not rebasing 0:426bada5c675 "A" (A), already in destination as 2:96cc3511f894 "C" (C) rebasing 1:fc2b737bb2e5 "B" (B) @@ -1453,6 +1481,7 @@ > /| | # replace: B -> C > A B C # D/D = D > EOS + 1 new orphan changesets $ hg rebase -r B+A+D -d Z rebasing 0:426bada5c675 "A" (A) note: not rebasing 1:fc2b737bb2e5 "B" (B), already in destination as 2:96cc3511f894 "C" (C) @@ -1530,6 +1559,7 @@ $ hg rebase -r B+D1 -d E rebasing 1:112478962961 "B" (B) note: not rebasing 5:15ecf15e0114 "D1" (book D1 tip), already in destination as 2:0807738e0be9 "D2" (D2) + 1 new orphan changesets $ hg log -G -T '{desc} {bookmarks}' @ B book | @@ -1561,6 +1591,7 @@ > |/ > A > EOS + 1 new orphan changesets $ eval `hg tags -T '{tag}={node}\n'` $ rm .hg/localtags