changeset 6316:b1d1f4ade142

evolve: don't embed graft data when completing interrupted evolve operations This data shows in TortoiseHg, and is a bit awkward since it wasn't added before in the non interrupted case. It originated before 823031b51d81, when the implementation changed away from using the graft command. According to @marmoute, unconditionally adding `source` served as noise to create a new hash and prevent a cycle, so use the same key (`rebase_source`) as would happen in the uninterrupted case (as demonstrated by the first change in test-stabilize-conflict.t).
author Matt Harbison <matt_harbison@yahoo.com>
date Fri, 07 Oct 2022 18:14:58 -0400
parents 3bad2060db25
children 53d63b608230
files hgext3rd/evolve/evolvecmd.py tests/test-evolve-abort-orphan.t tests/test-evolve-abort-phasediv.t tests/test-evolve-content-divergent-relocation.t tests/test-evolve-content-divergent-stack.t tests/test-evolve-continue.t tests/test-evolve-inmemory.t tests/test-evolve-interrupted.t tests/test-evolve-orphan-merge.t tests/test-evolve-phase-divergence.t tests/test-evolve-phase.t tests/test-evolve-progress.t tests/test-evolve-public-content-divergent-corner-cases.t tests/test-evolve-public-content-divergent-discard.t tests/test-evolve-public-content-divergent-main.t tests/test-evolve-stop-orphan.t tests/test-stabilize-conflict.t tests/test-unstability-resolution-result.t
diffstat 18 files changed, 184 insertions(+), 167 deletions(-) [+]
line wrap: on
line diff
--- a/hgext3rd/evolve/evolvecmd.py	Sat Oct 29 17:26:46 2022 +0400
+++ b/hgext3rd/evolve/evolvecmd.py	Fri Oct 07 18:14:58 2022 -0400
@@ -959,6 +959,15 @@
     _finalizerelocate(repo, orig, dest, nodenew, tr, category, evolvestate)
     return nodenew
 
+# This is copied from hgext.rebase._savegraft()
+def _savegraft(ctx, extra):
+    s = ctx.extra().get(b'source', None)
+    if s is not None:
+        extra[b'source'] = s
+    s = ctx.extra().get(b'intermediate-source', None)
+    if s is not None:
+        extra[b'intermediate-source'] = s
+
 def _relocatecommit(repo, orig, dest, pctx, keepbranch, commitmsg, update):
     extra = dict(orig.extra())
     if b'branch' in extra:
@@ -2191,13 +2200,11 @@
 
     orig = repo[evolvestate[b'current']]
     ctx = orig
-    source = ctx.extra().get(b'source')
+
     extra = {}
-    if source:
-        extra[b'source'] = source
-        extra[b'intermediate-source'] = ctx.hex()
-    else:
-        extra[b'source'] = ctx.hex()
+    _savegraft(ctx, extra)
+    extra[b'rebase_source'] = orig.hex()
+
     user = ctx.user()
     date = ctx.date()
     message = ctx.description()
--- a/tests/test-evolve-abort-orphan.t	Sat Oct 29 17:26:46 2022 +0400
+++ b/tests/test-evolve-abort-orphan.t	Fri Oct 07 18:14:58 2022 -0400
@@ -167,7 +167,7 @@
   continue: hg evolve --continue
   $ hg evolve --continue
   evolving 4:c41c793e0ef1 "added d"
-  working directory is now at e83de241f751
+  working directory is now at 69c43da639bb
 
   $ hg up .^^^
   0 files updated, 0 files merged, 3 files removed, 0 files unresolved
@@ -215,7 +215,7 @@
   |   () draft
   o  7:125af0ed8cae added a
   |   () draft
-  | *  6:e83de241f751 added d
+  | *  6:69c43da639bb added d
   | |   () draft orphan
   | %  5:e93a9161a274 added c
   | |   () draft orphan
@@ -234,7 +234,7 @@
   $ hg glog
   @  7:125af0ed8cae added a
   |   () draft
-  | *  6:e83de241f751 added d
+  | *  6:69c43da639bb added d
   | |   () draft orphan
   | *  5:e93a9161a274 added c
   | |   () draft orphan
--- a/tests/test-evolve-abort-phasediv.t	Sat Oct 29 17:26:46 2022 +0400
+++ b/tests/test-evolve-abort-phasediv.t	Fri Oct 07 18:14:58 2022 -0400
@@ -302,7 +302,7 @@
   continue: hg evolve --continue
   $ hg evolve --continue
   evolving 9:28cd06b3f801 "added c"
-  committed as 95d746965290
+  committed as 92acf49069a4
   recreate:[10] added d
   atop:[4] added d
   rebasing to destination parent: ca1b80f7960a
--- a/tests/test-evolve-content-divergent-relocation.t	Sat Oct 29 17:26:46 2022 +0400
+++ b/tests/test-evolve-content-divergent-relocation.t	Fri Oct 07 18:14:58 2022 -0400
@@ -524,16 +524,16 @@
   [240]
 
   $ hg diff
-  diff -r 5049972c0e21 y
+  diff -r 1d81f53f31a4 y
   --- a/y	Thu Jan 01 00:00:00 1970 +0000
   +++ b/y	Thu Jan 01 00:00:00 1970 +0000
   @@ -1,1 +1,5 @@
-  +<<<<<<< local: 5049972c0e21 - test: added z
+  +<<<<<<< local: 1d81f53f31a4 - test: added z
    foo
   +=======
   +watbar
   +>>>>>>> other: 7e87b40e3aa8 bar - test: added z
-  diff -r 5049972c0e21 z
+  diff -r 1d81f53f31a4 z
   --- a/z	Thu Jan 01 00:00:00 1970 +0000
   +++ b/z	Thu Jan 01 00:00:00 1970 +0000
   @@ -1,1 +1,1 @@
@@ -545,10 +545,10 @@
   (no more unresolved files)
   continue: hg evolve --continue
   $ hg evolve --continue
-  working directory is now at 04eb6e8d253d
+  working directory is now at eae98f1d3ae7
 
   $ hg glog
-  @  27:04eb6e8d253d added z
+  @  27:eae98f1d3ae7 added z
   |   () [bar] draft
   o  21:26dd4974d99f added y
   |   () [bar] draft
@@ -571,17 +571,17 @@
   # Date 0 0
   #      Thu Jan 01 00:00:00 1970 +0000
   # Branch bar
-  # Node ID 04eb6e8d253d5f17e0d9b1518678e015c272704e
+  # Node ID eae98f1d3ae723ed9f81e99a2eb0855305a6f5c3
   # Parent  26dd4974d99f30b9c9b259e22254b29474155d45
   added z
   
-  diff -r 26dd4974d99f -r 04eb6e8d253d y
+  diff -r 26dd4974d99f -r eae98f1d3ae7 y
   --- a/y	Thu Jan 01 00:00:00 1970 +0000
   +++ b/y	Thu Jan 01 00:00:00 1970 +0000
   @@ -1,1 +1,1 @@
   -watbar
   +foo
-  diff -r 26dd4974d99f -r 04eb6e8d253d z
+  diff -r 26dd4974d99f -r eae98f1d3ae7 z
   --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   +++ b/z	Thu Jan 01 00:00:00 1970 +0000
   @@ -0,0 +1,1 @@
@@ -609,15 +609,15 @@
   136e58088ce2a46749c73256b02608ca9be0fe09 f4c3594c72e7140404222d25e8827292e5d1a728 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'}
   136e58088ce2a46749c73256b02608ca9be0fe09 da49edc1732932755e2c42d91b6883e6616ff40b 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '68', 'operation': 'rebase', 'user': 'test'}
   da49edc1732932755e2c42d91b6883e6616ff40b 7e87b40e3aa8d28f0ba07c1cec4f562e57ba7c12 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'}
-  f4c3594c72e7140404222d25e8827292e5d1a728 5049972c0e212e0ad051e628b37d162097944b5f 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '12', 'operation': 'evolve', 'user': 'test'}
-  5049972c0e212e0ad051e628b37d162097944b5f 04eb6e8d253d5f17e0d9b1518678e015c272704e 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '72', 'operation': 'evolve', 'user': 'test'}
-  7e87b40e3aa8d28f0ba07c1cec4f562e57ba7c12 04eb6e8d253d5f17e0d9b1518678e015c272704e 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'evolve', 'user': 'test'}
+  f4c3594c72e7140404222d25e8827292e5d1a728 1d81f53f31a466dd36278a04c919fb50a37f04bd 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '12', 'operation': 'evolve', 'user': 'test'}
+  1d81f53f31a466dd36278a04c919fb50a37f04bd eae98f1d3ae723ed9f81e99a2eb0855305a6f5c3 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '72', 'operation': 'evolve', 'user': 'test'}
+  7e87b40e3aa8d28f0ba07c1cec4f562e57ba7c12 eae98f1d3ae723ed9f81e99a2eb0855305a6f5c3 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'evolve', 'user': 'test'}
   $ hg obslog --all
-  @    04eb6e8d253d (27) added z
-  |\     rewritten(branch, content) from 5049972c0e21 using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
+  @    eae98f1d3ae7 (27) added z
+  |\     rewritten(branch, content) from 1d81f53f31a4 using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
   | |    amended(content) from 7e87b40e3aa8 using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
   | |
-  x |  5049972c0e21 (26) added z
+  x |  1d81f53f31a4 (26) added z
   | |    rewritten(parent, content) from f4c3594c72e7 using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
   | |
   | x  7e87b40e3aa8 (25) added z
--- a/tests/test-evolve-content-divergent-stack.t	Sat Oct 29 17:26:46 2022 +0400
+++ b/tests/test-evolve-content-divergent-stack.t	Fri Oct 07 18:14:58 2022 -0400
@@ -309,23 +309,23 @@
   $ hg evolve -c
   evolving 18:2ecfb60af48a "added c and newfile"
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  working directory is now at 7e8d59a0286a
+  working directory is now at e7933de77142
 
   $ hg log -p -l1
-  changeset:   21:7e8d59a0286a
+  changeset:   21:e7933de77142
   tag:         tip
   parent:      17:5907cbc074a0
   user:        test
   date:        Thu Jan 01 00:00:00 1970 +0000
   summary:     added c and newfile
   
-  diff -r 5907cbc074a0 -r 7e8d59a0286a c
+  diff -r 5907cbc074a0 -r e7933de77142 c
   --- a/c	Thu Jan 01 00:00:00 1970 +0000
   +++ b/c	Thu Jan 01 00:00:00 1970 +0000
   @@ -1,1 +1,1 @@
   -conflict
   +c
-  diff -r 5907cbc074a0 -r 7e8d59a0286a newfile
+  diff -r 5907cbc074a0 -r e7933de77142 newfile
   --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   +++ b/newfile	Thu Jan 01 00:00:00 1970 +0000
   @@ -0,0 +1,1 @@
@@ -567,21 +567,21 @@
   merge:[7] added c
   with: [12] added c
   base: [3] added c
-  rebasing "divergent" content-divergent changeset 3ce4be6d8e5e on 1a79fc84e761
-  rebasing "other" content-divergent changeset 8ed612937375 on 1a79fc84e761
+  rebasing "divergent" content-divergent changeset 3ce4be6d8e5e on f3872aea30b5
+  rebasing "other" content-divergent changeset 8ed612937375 on f3872aea30b5
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   merge:[8] added d
   with: [13] added d
   base: [4] added d
-  rebasing "divergent" content-divergent changeset c72d2885eb51 on 6c228f1e5409
-  rebasing "other" content-divergent changeset d45f050514c2 on 6c228f1e5409
+  rebasing "divergent" content-divergent changeset c72d2885eb51 on 72d58e863d2a
+  rebasing "other" content-divergent changeset d45f050514c2 on 72d58e863d2a
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg glog
-  o  25:957008d45543 added d
+  o  25:1ec6ea2bd496 added d
   |   () [default] draft
-  o  22:6c228f1e5409 added c
+  o  22:72d58e863d2a added c
   |   () [default] draft
-  o  19:1a79fc84e761 added b
+  o  19:f3872aea30b5 added b
   |   () [default] draft
   @  16:c758af982013 watbar to a
   |   () [default] draft
@@ -594,7 +594,7 @@
 --------------------------------------------------------------
   $ hg strip 14: --hidden
   0 files updated, 0 files merged, 2 files removed, 0 files unresolved
-  saved backup bundle to $TESTTMP/stackrepo1/.hg/strip-backup/c758af982013-0af4fee9-backup.hg
+  saved backup bundle to $TESTTMP/stackrepo1/.hg/strip-backup/c758af982013-458a0e95-backup.hg
   8 new content-divergent changesets
 
 Insert conflicting changes in between the stack of content-div csets
--- a/tests/test-evolve-continue.t	Sat Oct 29 17:26:46 2022 +0400
+++ b/tests/test-evolve-continue.t	Fri Oct 07 18:14:58 2022 -0400
@@ -81,7 +81,7 @@
   evolving 4:c41c793e0ef1 "added d"
 
   $ hg glog
-  o  6:2a4e03d422e2 added d
+  o  6:250d8c3c5ad9 added d
   |   () draft
   @  5:cb6a2ab625bb added c
   |   () draft
@@ -106,7 +106,7 @@
   $ hg glog
   @  7:8591ebad2ee8 added b
   |   () draft
-  | *  6:2a4e03d422e2 added d
+  | *  6:250d8c3c5ad9 added d
   | |   () draft orphan
   | *  5:cb6a2ab625bb added c
   | |   () draft orphan
@@ -139,9 +139,9 @@
   atop:[8] added c
 
   $ hg glog
-  o  9:ee53d012d45b added d
+  o  9:628919fc6772 added d
   |   () draft
-  o  8:ba3724c42438 added c
+  o  8:f8d5006085c0 added c
   |   () draft
   @  7:8591ebad2ee8 added b
   |   () draft
@@ -166,13 +166,13 @@
   1 new orphan changesets
 
   $ hg glog
-  @  11:184dba7cf613 added d
+  @  11:7898e026e390 added d
   |   () draft
-  | *  10:87d7311179ee added e
+  | *  10:5610cf0a9e66 added e
   | |   () draft orphan
-  | x  9:ee53d012d45b added d
+  | x  9:628919fc6772 added d
   |/    () draft
-  o  8:ba3724c42438 added c
+  o  8:f8d5006085c0 added c
   |   () draft
   o  7:8591ebad2ee8 added b
   |   () draft
@@ -199,13 +199,13 @@
   $ hg diff
 
   $ hg evolve --continue
-  evolving 10:87d7311179ee "added e"
-  evolution of 10:87d7311179ee created no changes to commit
+  evolving 10:5610cf0a9e66 "added e"
+  evolution of 10:5610cf0a9e66 created no changes to commit
 
   $ hg glog
-  @  11:184dba7cf613 added d
+  @  11:7898e026e390 added d
   |   () draft
-  o  8:ba3724c42438 added c
+  o  8:f8d5006085c0 added c
   |   () draft
   o  7:8591ebad2ee8 added b
   |   () draft
@@ -243,14 +243,14 @@
   move:[8] added c
   atop:[13] added b
   move:[11] added d
-  working directory is now at 44cb92e89781
+  working directory is now at e74792b81a55
 
   $ hg glog
-  @  15:44cb92e89781 added d
+  @  15:e74792b81a55 added d
   |   () draft
-  o  14:152ba81b0477 added c
+  o  14:7bf9d72ff3bf added c
   |   () draft
-  o  13:58b400d15a91 added b
+  o  13:aaa724b65a25 added b
   |   () draft
   o  12:53b632d203d8 added a
   |   () draft
@@ -263,17 +263,17 @@
   $ for ch in f g h; do echo foo > $ch; hg add $ch; hg ci -m "added "$ch; done;
 
   $ hg glog
-  @  18:bc3b992c22bd added h
+  @  18:b0be59de2042 added h
   |   () draft
-  o  17:28352edcd58d added g
+  o  17:65a420e37a47 added g
   |   () draft
-  o  16:f9f6a4a00822 added f
+  o  16:e27c754278b4 added f
   |   () draft
-  o  15:44cb92e89781 added d
+  o  15:e74792b81a55 added d
   |   () draft
-  o  14:152ba81b0477 added c
+  o  14:7bf9d72ff3bf added c
   |   () draft
-  o  13:58b400d15a91 added b
+  o  13:aaa724b65a25 added b
   |   () draft
   o  12:53b632d203d8 added a
   |   () draft
@@ -290,19 +290,19 @@
   4 new orphan changesets
 
   $ hg glog
-  @  19:f4023955bf12 added c
+  @  19:ebc872a542e5 added c
   |   () draft
-  | *  18:bc3b992c22bd added h
+  | *  18:b0be59de2042 added h
   | |   () draft orphan
-  | *  17:28352edcd58d added g
+  | *  17:65a420e37a47 added g
   | |   () draft orphan
-  | *  16:f9f6a4a00822 added f
+  | *  16:e27c754278b4 added f
   | |   () draft orphan
-  | *  15:44cb92e89781 added d
+  | *  15:e74792b81a55 added d
   | |   () draft orphan
-  | x  14:152ba81b0477 added c
+  | x  14:7bf9d72ff3bf added c
   |/    () draft
-  o  13:58b400d15a91 added b
+  o  13:aaa724b65a25 added b
   |   () draft
   o  12:53b632d203d8 added a
   |   () draft
@@ -326,7 +326,7 @@
   (no more unresolved files)
   continue: hg evolve --continue
   $ hg evolve --continue
-  evolving 16:f9f6a4a00822 "added f"
+  evolving 16:e27c754278b4 "added f"
   move:[17] added g
   atop:[21] added f
   move:[18] added h
@@ -343,23 +343,23 @@
   (no more unresolved files)
   continue: hg evolve --continue
   $ hg evolve --continue
-  evolving 18:bc3b992c22bd "added h"
-  working directory is now at b4b76f2b86eb
+  evolving 18:b0be59de2042 "added h"
+  working directory is now at 91c5e26a586a
 
 Make sure, confirmopt is respected while continue
 
   $ hg glog
-  @  23:b4b76f2b86eb added h
+  @  23:91c5e26a586a added h
   |   () draft
-  o  22:c75da1c807b4 added g
+  o  22:e825e477b74b added g
   |   () draft
-  o  21:1b1bb06b1b76 added f
+  o  21:0a2fc6eeeb5c added f
   |   () draft
-  o  20:63d80a6d5203 added d
+  o  20:f0c57a8fdffc added d
   |   () draft
-  o  19:f4023955bf12 added c
+  o  19:ebc872a542e5 added c
   |   () draft
-  o  13:58b400d15a91 added b
+  o  13:aaa724b65a25 added b
   |   () draft
   o  12:53b632d203d8 added a
   |   () draft
@@ -395,24 +395,24 @@
   $ hg evolve --continue << EOF
   > y
   > EOF
-  evolving 22:c75da1c807b4 "added g"
+  evolving 22:e825e477b74b "added g"
   move:[23] added h
   atop:[25] added g
   perform evolve? [Ny] y
-  working directory is now at 53fa2be5b910
+  working directory is now at a590d5f50500
 
   $ hg glog
-  @  26:53fa2be5b910 added h
+  @  26:a590d5f50500 added h
   |   () draft
-  o  25:3efe414bea19 added g
+  o  25:e37fd94c4cdd added g
   |   () draft
-  o  24:a8dd354780ea added f
+  o  24:93c25976d54c added f
   |   () draft
-  o  20:63d80a6d5203 added d
+  o  20:f0c57a8fdffc added d
   |   () draft
-  o  19:f4023955bf12 added c
+  o  19:ebc872a542e5 added c
   |   () draft
-  o  13:58b400d15a91 added b
+  o  13:aaa724b65a25 added b
   |   () draft
   o  12:53b632d203d8 added a
   |   () draft
@@ -442,7 +442,7 @@
   (no more unresolved files)
   continue: hg evolve --continue
   $ hg evolve --continue
-  evolving 25:3efe414bea19 "added g"
+  evolving 25:e37fd94c4cdd "added g"
 
 Testing that interrupted evolve don't get confused about copies (issue5930):
 ----------------------------------------------------------------------------
--- a/tests/test-evolve-inmemory.t	Sat Oct 29 17:26:46 2022 +0400
+++ b/tests/test-evolve-inmemory.t	Fri Oct 07 18:14:58 2022 -0400
@@ -103,9 +103,9 @@
   move:[5] E
   atop:[7] D
   $ hg glog
-  o  8:166afca01be8 draft tip
+  o  8:918ab8de4edf draft tip
   |  E
-  o  7:4f84a36487e4 draft
+  o  7:c9677354e977 draft
   |  D
   o  6:a2a0434af50b draft
   |  C
--- a/tests/test-evolve-interrupted.t	Sat Oct 29 17:26:46 2022 +0400
+++ b/tests/test-evolve-interrupted.t	Fri Oct 07 18:14:58 2022 -0400
@@ -135,7 +135,7 @@
   [40]
   $ hg evolve --continue
   evolving 1:e0486f65907d "banana"
-  working directory is now at bd5ec7dfc2af
+  working directory is now at b10ea0f329d2
   $ cat .hg/evolvestate
   cat: .hg/evolvestate: No such file or directory
   [1]
--- a/tests/test-evolve-orphan-merge.t	Sat Oct 29 17:26:46 2022 +0400
+++ b/tests/test-evolve-orphan-merge.t	Fri Oct 07 18:14:58 2022 -0400
@@ -217,10 +217,10 @@
   continue: hg evolve --continue
   $ hg evolve --continue
   evolving 10:fd41d25a3e90 "foobar to c"
-  working directory is now at c5405d2da7a1
+  working directory is now at 6b3ccba26ce3
 
   $ hg glog
-  @    12:c5405d2da7a1 foobar to c
+  @    12:6b3ccba26ce3 foobar to c
   |\    () draft
   | o  11:31c317b7bdb1 foo to c
   | |   () draft
@@ -230,7 +230,7 @@
       () draft
 
   $ hg parents
-  changeset:   12:c5405d2da7a1
+  changeset:   12:6b3ccba26ce3
   tag:         tip
   parent:      9:d0f84b25d4e3
   parent:      11:31c317b7bdb1
@@ -249,7 +249,7 @@
   $ hg glog
   @  13:928097d0b5b5 foo to c
   |   () draft
-  | *    12:c5405d2da7a1 foobar to c
+  | *    12:6b3ccba26ce3 foobar to c
   | |\    () draft orphan
   +---x  11:31c317b7bdb1 foo to c
   | |     () draft
@@ -273,11 +273,11 @@
   continue: hg evolve --continue
 
   $ hg evolve --continue
-  evolving 12:c5405d2da7a1 "foobar to c"
-  working directory is now at dc1948a6eeab
+  evolving 12:6b3ccba26ce3 "foobar to c"
+  working directory is now at 6feadc8fabd5
 
   $ hg glog
-  @    14:dc1948a6eeab foobar to c
+  @    14:6feadc8fabd5 foobar to c
   |\    () draft
   | o  13:928097d0b5b5 foo to c
   | |   () draft
@@ -289,7 +289,7 @@
 3) When stabilizing other changesets resulted in orphan merge changeset
 -----------------------------------------------------------------------
 
-  $ hg prune -r d0f84b25d4e3 -r 928097d0b5b5 -r dc1948a6eeab
+  $ hg prune -r d0f84b25d4e3 -r 928097d0b5b5 -r 6feadc8fabd5
   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
   working directory is now at 8fa14d15e168
   3 changesets pruned
--- a/tests/test-evolve-phase-divergence.t	Sat Oct 29 17:26:46 2022 +0400
+++ b/tests/test-evolve-phase-divergence.t	Fri Oct 07 18:14:58 2022 -0400
@@ -878,11 +878,11 @@
 
   $ hg evolve --continue
   evolving 19:5fd38c0de46e "added l to l"
-  committed as e3090241a10c
-  working directory is now at e3090241a10c
+  committed as c2aa021d3c99
+  working directory is now at c2aa021d3c99
 
   $ hg glog
-  @  21:e3090241a10c phase-divergent update to f3794e5a91dc:
+  @  21:c2aa021d3c99 phase-divergent update to f3794e5a91dc:
   |   () draft
   o  17:f3794e5a91dc added l to l
   |   () public
@@ -910,19 +910,19 @@
   # User test
   # Date 0 0
   #      Thu Jan 01 00:00:00 1970 +0000
-  # Node ID e3090241a10c320b6132e4673915fd6b19c0de39
+  # Node ID c2aa021d3c99453c0b1b646fb7e9325b151780df
   # Parent  f3794e5a91dc1d4d36fee5c423386b19433a1f48
   phase-divergent update to f3794e5a91dc:
   
   added l to l
   
-  diff -r f3794e5a91dc -r e3090241a10c l
+  diff -r f3794e5a91dc -r c2aa021d3c99 l
   --- a/l	Thu Jan 01 00:00:00 1970 +0000
   +++ b/l	Thu Jan 01 00:00:00 1970 +0000
   @@ -1,1 +1,1 @@
   -l
   +kl
-  diff -r f3794e5a91dc -r e3090241a10c x
+  diff -r f3794e5a91dc -r c2aa021d3c99 x
   --- a/x	Thu Jan 01 00:00:00 1970 +0000
   +++ b/x	Thu Jan 01 00:00:00 1970 +0000
   @@ -1,1 +1,1 @@
@@ -933,7 +933,7 @@
 ------------------------------------------------------------------------
 
   $ hg glog -r .
-  @  21:e3090241a10c phase-divergent update to f3794e5a91dc:
+  @  21:c2aa021d3c99 phase-divergent update to f3794e5a91dc:
   |   () draft
   ~
   $ echo f > f
@@ -947,42 +947,42 @@
 
   $ hg evolve --list
 
-  $ hg phase -r 428f7900a969 --public --hidden
+  $ hg phase -r 3bb2b4083933 --public --hidden
   1 new phase-divergent changesets
 
   $ hg glog -r f3794e5a91dc::
-  @  24:390acb97e50a added f
+  @  24:39a4f9562a25 added f
   |   () draft
-  | o  23:428f7900a969 added g
+  | o  23:3bb2b4083933 added g
   | |   () public
-  | o  22:21ae52e414e6 added f
+  | o  22:12f787829d43 added f
   |/    () public
-  o  21:e3090241a10c phase-divergent update to f3794e5a91dc:
+  o  21:c2aa021d3c99 phase-divergent update to f3794e5a91dc:
   |   () public
   o  17:f3794e5a91dc added l to l
   |   () public
   ~
 
   $ hg evolve --list
-  390acb97e50a: added f
-    phase-divergent: 21ae52e414e6 (immutable precursor)
-    phase-divergent: 428f7900a969 (immutable precursor)
+  39a4f9562a25: added f
+    phase-divergent: 12f787829d43 (immutable precursor)
+    phase-divergent: 3bb2b4083933 (immutable precursor)
   
 Resolving phase divergence using `hg evolve`
 
   $ hg evolve --phase-divergent --all
   recreate:[24] added f
   atop:[23] added g
-  rebasing to destination parent: 21ae52e414e6
+  rebasing to destination parent: 12f787829d43
   no changes to commit
-  working directory is now at e3090241a10c
+  working directory is now at c2aa021d3c99
 
   $ hg glog -r f3794e5a91dc::
-  o  23:428f7900a969 added g
+  o  23:3bb2b4083933 added g
   |   () public
-  o  22:21ae52e414e6 added f
+  o  22:12f787829d43 added f
   |   () public
-  @  21:e3090241a10c phase-divergent update to f3794e5a91dc:
+  @  21:c2aa021d3c99 phase-divergent update to f3794e5a91dc:
   |   () public
   o  17:f3794e5a91dc added l to l
   |   () public
--- a/tests/test-evolve-phase.t	Sat Oct 29 17:26:46 2022 +0400
+++ b/tests/test-evolve-phase.t	Fri Oct 07 18:14:58 2022 -0400
@@ -128,7 +128,7 @@
   evolving 2:13833940840c "c"
 
   $ hg glog
-  o  4 - 3d2080c198e5 c (secret)
+  o  4 - 82e9fa5a553a c (secret)
   |
   @  3 - 87495ea7c9ec b (draft)
   |
--- a/tests/test-evolve-progress.t	Sat Oct 29 17:26:46 2022 +0400
+++ b/tests/test-evolve-progress.t	Fri Oct 07 18:14:58 2022 -0400
@@ -149,11 +149,11 @@
   obscache is out of date
   move:[6] third
   atop:[11] second
-  hg rebase -r 53c0008d98a0 -d 60a86497fbfe
+  hg rebase -r 53c0008d98a0 -d c8caf623f57b
   evolve: 2/3 changesets (66.67%)
   resolving manifests
    branchmerge: True, force: True, partial: False
-   ancestor: 5f16d91ecde0, local: 60a86497fbfe+, remote: 53c0008d98a0
+   ancestor: 5f16d91ecde0, local: c8caf623f57b+, remote: 53c0008d98a0
    b: remote created -> g
   getting b
   updating: b 1/1 files (100.00%)
@@ -162,11 +162,11 @@
   committing manifest
   committing changelog
   move:[7] fourth
-  hg rebase -r 385376d04062 -d b2de95304e32
+  hg rebase -r 385376d04062 -d 55f7ff45dec4
   evolve: 3/3 changesets (100.00%)
   resolving manifests
    branchmerge: True, force: True, partial: False
-   ancestor: 53c0008d98a0, local: b2de95304e32+, remote: 385376d04062
+   ancestor: 53c0008d98a0, local: 55f7ff45dec4+, remote: 385376d04062
    b: remote is newer -> g
   getting b
   updating: b 1/1 files (100.00%)
@@ -180,7 +180,7 @@
   invalid branch cache (served.hidden): tip differs
   resolving manifests
    branchmerge: False, force: False, partial: False
-   ancestor: c6e6fdb1d046, local: c6e6fdb1d046+, remote: f8d7d38c0a88
+   ancestor: 1edc3bac9e3c, local: 1edc3bac9e3c+, remote: f8d7d38c0a88
    b: other deleted -> r
   removing b
   updating: b 1/2 files (50.00%)
--- a/tests/test-evolve-public-content-divergent-corner-cases.t	Sat Oct 29 17:26:46 2022 +0400
+++ b/tests/test-evolve-public-content-divergent-corner-cases.t	Fri Oct 07 18:14:58 2022 -0400
@@ -432,7 +432,7 @@
   $ hg sum
   parent: 5:93cd84bbdaca 
    added d
-  parent: 6:2af3359250d3 tip (content-divergent)
+  parent: 6:cf77846279b4 tip (content-divergent)
    added c e
   branch: default
   commit: 1 modified, 1 unknown, 1 unresolved (merge)
@@ -447,27 +447,27 @@
   continue: hg evolve --continue
 
   $ hg evolve --continue
-  committed as bb4d94ae1a5a
-  working directory is now at bb4d94ae1a5a
+  committed as 01169b149789
+  working directory is now at 01169b149789
 
   $ hg export
   # HG changeset patch
   # User test
   # Date 0 0
   #      Thu Jan 01 00:00:00 1970 +0000
-  # Node ID bb4d94ae1a5ac031ba524ef30850f32b9b50a560
+  # Node ID 01169b149789f09d81f86d5273e56671ab645590
   # Parent  93cd84bbdacaeb8f881c29a609dbdd30c38cbc57
   phase-divergent update to 93cd84bbdaca:
   
   added c e
   
-  diff -r 93cd84bbdaca -r bb4d94ae1a5a d
+  diff -r 93cd84bbdaca -r 01169b149789 d
   --- a/d	Thu Jan 01 00:00:00 1970 +0000
   +++ b/d	Thu Jan 01 00:00:00 1970 +0000
   @@ -1,1 +1,1 @@
   -dd
   +resolved
-  diff -r 93cd84bbdaca -r bb4d94ae1a5a e
+  diff -r 93cd84bbdaca -r 01169b149789 e
   --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   +++ b/e	Thu Jan 01 00:00:00 1970 +0000
   @@ -0,0 +1,1 @@
--- a/tests/test-evolve-public-content-divergent-discard.t	Sat Oct 29 17:26:46 2022 +0400
+++ b/tests/test-evolve-public-content-divergent-discard.t	Fri Oct 07 18:14:58 2022 -0400
@@ -397,7 +397,7 @@
   $ hg evolve --continue
   evolving 4:f89a8e2f86ac "added dh"
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  other divergent changeset bc309da55b88 has same content as local e800202333a4 and differs by "description" only, discarding bc309da55b88
+  other divergent changeset 50a1c208f59e has same content as local e800202333a4 and differs by "description" only, discarding 50a1c208f59e
 
   $ hg evolve -l
 
@@ -617,7 +617,7 @@
   continue: hg evolve --continue
 
   $ hg evolve --continue
-  other divergent changeset 09054d1f3c97 has same content as local e800202333a4 and differs by "description" only, discarding 09054d1f3c97
+  other divergent changeset 573a0455bb00 has same content as local e800202333a4 and differs by "description" only, discarding 573a0455bb00
 
   $ hg evolve -l
 
--- a/tests/test-evolve-public-content-divergent-main.t	Sat Oct 29 17:26:46 2022 +0400
+++ b/tests/test-evolve-public-content-divergent-main.t	Fri Oct 07 18:14:58 2022 -0400
@@ -392,20 +392,20 @@
   $ hg evolve --continue
   evolving 4:f31bcc378766 "added d c e"
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  committed as 4bce4ff71bf9
-  working directory is now at 4bce4ff71bf9
+  committed as e247c56b4c01
+  working directory is now at e247c56b4c01
   $ hg export
   # HG changeset patch
   # User test
   # Date 0 0
   #      Thu Jan 01 00:00:00 1970 +0000
-  # Node ID 4bce4ff71bf901840aebb0aa87716e878938b55e
+  # Node ID e247c56b4c0103b53448551b3e5ff9a8173be791
   # Parent  93cd84bbdacaeb8f881c29a609dbdd30c38cbc57
   phase-divergent update to 93cd84bbdaca:
   
   added d c e
   
-  diff -r 93cd84bbdaca -r 4bce4ff71bf9 e
+  diff -r 93cd84bbdaca -r e247c56b4c01 e
   --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   +++ b/e	Thu Jan 01 00:00:00 1970 +0000
   @@ -0,0 +1,1 @@
@@ -627,7 +627,7 @@
   continue: hg evolve --continue
 
   $ hg evolve --continue
-  committed as ba823b8ff683
+  committed as 704cf6f2d22f
 
   $ hg evolve -l
   $ cd ..
--- a/tests/test-evolve-stop-orphan.t	Sat Oct 29 17:26:46 2022 +0400
+++ b/tests/test-evolve-stop-orphan.t	Fri Oct 07 18:14:58 2022 -0400
@@ -220,9 +220,9 @@
   continue: hg evolve --continue
   $ hg evolve --continue
   evolving 4:c41c793e0ef1 "added d"
-  working directory is now at 2a4e03d422e2
+  working directory is now at 250d8c3c5ad9
   $ hg glog
-  @  6:2a4e03d422e2 added d
+  @  6:250d8c3c5ad9 added d
   |   () draft
   o  5:cb6a2ab625bb added c
   |   () draft
@@ -243,7 +243,7 @@
   $ hg glog
   @  7:21817cd42526 added hgignore
       () draft
-  *  6:2a4e03d422e2 added d
+  *  6:250d8c3c5ad9 added d
   |   () draft orphan
   *  5:cb6a2ab625bb added c
   |   () draft orphan
@@ -283,7 +283,7 @@
   |   () draft
   @  7:21817cd42526 added hgignore
       () draft
-  *  6:2a4e03d422e2 added d
+  *  6:250d8c3c5ad9 added d
   |   () draft orphan
   *  5:cb6a2ab625bb added c
   |   () draft orphan
@@ -316,9 +316,9 @@
   move:[6] added d
   atop:[10] added c
   $ hg glog
-  o  11:cd0909a30222 added d
+  o  11:4b77e6973234 added d
   |   () draft
-  o  10:cb1dd1086ef6 added c
+  o  10:b4e2f43191a0 added c
   |   () draft
   o  9:aec285328e90 added b
   |   () draft
@@ -340,9 +340,9 @@
   $ hg bookmark b2
 
   $ hg glog
-  o  11:cd0909a30222 added d
+  o  11:4b77e6973234 added d
   |   () draft
-  o  10:cb1dd1086ef6 added c
+  o  10:b4e2f43191a0 added c
   |   (b1) draft
   @  9:aec285328e90 added b
   |   (b2) draft
@@ -361,9 +361,9 @@
   $ hg glog
   @  12:a3cc2042492f added a
   |   () draft
-  | *  11:cd0909a30222 added d
+  | *  11:4b77e6973234 added d
   | |   () draft orphan
-  | *  10:cb1dd1086ef6 added c
+  | *  10:b4e2f43191a0 added c
   | |   (b1) draft orphan
   | *  9:aec285328e90 added b
   | |   (b2) draft orphan
@@ -394,9 +394,9 @@
   |   (b2) draft
   @  12:a3cc2042492f added a
   |   () draft
-  | *  11:cd0909a30222 added d
+  | *  11:4b77e6973234 added d
   | |   () draft orphan
-  | *  10:cb1dd1086ef6 added c
+  | *  10:b4e2f43191a0 added c
   | |   (b1) draft orphan
   | x  9:aec285328e90 added b
   | |   () draft
--- a/tests/test-stabilize-conflict.t	Sat Oct 29 17:26:46 2022 +0400
+++ b/tests/test-stabilize-conflict.t	Fri Oct 07 18:14:58 2022 -0400
@@ -80,6 +80,11 @@
   atop:[3] babar count up to ten
   merging babar
   working directory is now at 71c18f70c34f
+
+  $ hg log -r . -T '{extras % "{key}={value}\n"}'
+  branch=default
+  rebase_source=694f05b30ab7d4324e469d19af2ee80003a8fb50
+
   $ hg resolve -l
   $ hg log -G
   @  changeset:   4:71c18f70c34f
@@ -167,10 +172,15 @@
   continue: hg evolve --continue
   $ hg evolve --continue
   evolving 4:71c18f70c34f "babar count up to fifteen"
-  working directory is now at 1836b91c6c1d
+  working directory is now at 368da14a3c59
+
+  $ hg log -r . -T '{extras % "{key}={value}\n"}'
+  branch=default
+  rebase_source=71c18f70c34f7a15e293983a89ccd17ae3f444aa
+
   $ hg resolve -l
   $ hg log -G
-  @  changeset:   6:1836b91c6c1d
+  @  changeset:   6:368da14a3c59
   |  tag:         tip
   |  user:        test
   |  date:        Thu Jan 01 00:00:00 1970 +0000
@@ -232,7 +242,7 @@
   |  date:        Thu Jan 01 00:00:00 1970 +0000
   |  summary:     babar count up to ten
   |
-  | %  changeset:   6:1836b91c6c1d
+  | %  changeset:   6:368da14a3c59
   | |  user:        test
   | |  date:        Thu Jan 01 00:00:00 1970 +0000
   | |  instability: orphan
--- a/tests/test-unstability-resolution-result.t	Sat Oct 29 17:26:46 2022 +0400
+++ b/tests/test-unstability-resolution-result.t	Fri Oct 07 18:14:58 2022 -0400
@@ -108,7 +108,7 @@
   continue: hg evolve --continue
   $ hg evolve --continue
   evolving 4:3655f0f50885 "newer a"
-  working directory is now at 1cf0aacfd363
+  working directory is now at 99ec7503cf5a
 
 Stabilize phase-divergent changesets with a different parent
 ============================================================
@@ -116,7 +116,7 @@
 (the same-parent case is handled in test-evolve.t)
 
   $ glog
-  @  6:1cf0aacfd363@default(draft) bk:[] newer a
+  @  6:99ec7503cf5a@default(draft) bk:[] newer a
   |
   o  5:66719795a494@default(draft) bk:[changea] changea
   |
@@ -136,8 +136,8 @@
 
 Get a successors of 8 on it
 
-  $ hg pick 1cf0aacfd363
-  picking 6:1cf0aacfd363 "newer a"
+  $ hg pick 99ec7503cf5a
+  picking 6:99ec7503cf5a "newer a"
 
 Add real change to the successors
 
@@ -146,14 +146,14 @@
 
 Make precursors public
 
-  $ hg phase --hidden --public 1cf0aacfd363
+  $ hg phase --hidden --public 99ec7503cf5a
   1 new phase-divergent changesets
   $ glog
-  @  9:99c21c89bcef@default(draft) bk:[] newer a
+  @  9:998db519ac88@default(draft) bk:[] newer a
   |
   o  7:7bc2f5967f5e@default(draft) bk:[] add c
   |
-  | o  6:1cf0aacfd363@default(public) bk:[] newer a
+  | o  6:99ec7503cf5a@default(public) bk:[] newer a
   |/
   o  5:66719795a494@default(public) bk:[changea] changea
   |
@@ -165,10 +165,10 @@
   $ hg evolve --any --dry-run --phase-divergent
   recreate:[9] newer a
   atop:[6] newer a
-  hg rebase --rev 99c21c89bcef --dest 66719795a494;
-  hg update 1cf0aacfd363;
-  hg revert --all --rev 99c21c89bcef;
-  hg commit --message "phase-divergent update to 99c21c89bcef"
+  hg rebase --rev 998db519ac88 --dest 66719795a494;
+  hg update 99ec7503cf5a;
+  hg revert --all --rev 998db519ac88;
+  hg commit --message "phase-divergent update to 998db519ac88"
   $ hg evolve --any --confirm --phase-divergent
   recreate:[9] newer a
   atop:[6] newer a
@@ -180,14 +180,14 @@
   atop:[6] newer a
   perform evolve? [Ny] y
   rebasing to destination parent: 66719795a494
-  committed as 8fc63fe1f297
-  working directory is now at 8fc63fe1f297
+  committed as 9bd81588dac8
+  working directory is now at 9bd81588dac8
   $ glog
-  @  11:8fc63fe1f297@default(draft) bk:[] phase-divergent update to 1cf0aacfd363:
+  @  11:9bd81588dac8@default(draft) bk:[] phase-divergent update to 99ec7503cf5a:
   |
   | o  7:7bc2f5967f5e@default(draft) bk:[] add c
   | |
-  o |  6:1cf0aacfd363@default(public) bk:[] newer a
+  o |  6:99ec7503cf5a@default(public) bk:[] newer a
   |/
   o  5:66719795a494@default(public) bk:[changea] changea
   |
@@ -198,13 +198,13 @@
   # User test
   # Date 0 0
   #      Thu Jan 01 00:00:00 1970 +0000
-  # Node ID 8fc63fe1f297f356d1156bbbbe865b9911efad74
-  # Parent  1cf0aacfd36310b18e403e1594871187e0364a82
-  phase-divergent update to 1cf0aacfd363:
+  # Node ID 9bd81588dac89b66b4fb6dadd8e33b1ecfe9b408
+  # Parent  99ec7503cf5a2cd545f41792129becc4172e9e9d
+  phase-divergent update to 99ec7503cf5a:
   
   newer a
   
-  diff -r 1cf0aacfd363 -r 8fc63fe1f297 a
+  diff -r 99ec7503cf5a -r 9bd81588dac8 a
   --- a/a	Thu Jan 01 00:00:00 1970 +0000
   +++ b/a	Thu Jan 01 00:00:00 1970 +0000
   @@ -1,3 +1,4 @@