evolve: always create commit when resolving divergence
authorMartin von Zweigbergk <martinvonz@google.com>
Thu, 30 Apr 2020 10:05:14 -0700
changeset 5341 13376ca93fa3
parent 5340 9351e6c22e74
child 5342 265e029785ae
evolve: always create commit when resolving divergence When resolving content-divergence, the final commit we create may end up empty (which means that Mercurial won't even create it). We've had code for handling that in evolve ever since 41bf6c27a122 (evolve: stabilize now handle conflicting changeset, 2012-08-23). However, that resolved the issue by marking on the divergent commits as successor. As Pierre-Yves has pointed out (in other code reviews), we should instead be creating a new successor. So that's what this patch does. It does that by setting `ui.allowemptycommit` while creating the final commit. However, that is not enough, because we may end up creating the same nodeid as already existed (we'd then end up trying to mark the "new" commit a successor of itself). To solve that, we add some salt to the commit extras. That salt affects lots of tests.
hgext3rd/evolve/evolvecmd.py
tests/test-evolve-content-divergent-basic.t
tests/test-evolve-content-divergent-corner-cases.t
tests/test-evolve-content-divergent-first-changeset.t
tests/test-evolve-content-divergent-interrupted.t
tests/test-evolve-content-divergent-meta.t
tests/test-evolve-content-divergent-relocation.t
tests/test-evolve-content-divergent-stack.t
tests/test-evolve-issue5958.t
tests/test-evolve-public-content-divergent-corner-cases.t
tests/test-evolve-public-content-divergent-main.t
tests/test-sharing.t
tests/test-topic-stack-complex.t
--- a/hgext3rd/evolve/evolvecmd.py	Tue May 05 16:29:52 2020 +0800
+++ b/hgext3rd/evolve/evolvecmd.py	Thu Apr 30 10:05:14 2020 -0700
@@ -676,23 +676,26 @@
         else:
             date = max(divergent.date(), other.date())
 
-    # new node if any formed as the replacement
-    newnode = repo.commit(text=desc, user=user, date=date)
-    if newnode == divergent.node() or newnode is None:
-        # no changes
-        new = divergent
-        storemarker = True
-        repo.ui.status(_(b"nothing changed\n"))
-        hg.updaterepo(repo, divergent.rev(), False)
+    # We really want a new commit in order to avoid obsmarker cycles (otherwise
+    # divergence resolutions done in separate repos may create markers in the
+    # opposite directions). For that reason, we set ui.allowemptycommit and
+    # also add also add some salt to the commit extras to make sure we don't
+    # reuse an existing nodeid.
+    with repo.ui.configoverride(
+        {(b'ui', b'allowemptycommit'): b'true'}, b'evolve'
+    ):
+        extra = {
+            b'evolve_source_local': divergent.hex(),
+            b'evolve_source_other': other.hex()
+        }
+        newnode = repo.commit(text=desc, user=user, date=date, extra=extra)
+    new = repo[newnode]
+    hg.updaterepo(repo, new.rev(), False)
+    if haspubdiv and publicdiv == divergent:
+        bypassphase(repo, (divergent, new), operation=b'evolve')
     else:
-        new = repo[newnode]
-        newnode = new.node()
-        hg.updaterepo(repo, new.rev(), False)
-        if haspubdiv and publicdiv == divergent:
-            bypassphase(repo, (divergent, new), operation=b'evolve')
-        else:
-            obsolete.createmarkers(repo, [(divergent, (new,))],
-                                   operation=b'evolve')
+        obsolete.createmarkers(repo, [(divergent, (new,))],
+                               operation=b'evolve')
 
     # creating markers and moving phases post-resolution
     if haspubdiv and publicdiv == other:
--- a/tests/test-evolve-content-divergent-basic.t	Tue May 05 16:29:52 2020 +0800
+++ b/tests/test-evolve-content-divergent-basic.t	Thu Apr 30 10:05:14 2020 -0700
@@ -142,9 +142,9 @@
   with: [3] divergent
   base: [1] added b
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  working directory is now at 45bf1312f454
+  working directory is now at cfcd9a3d0588
   $ hg log -G
-  @  4:45bf1312f454@default(draft) divergent []
+  @  4:cfcd9a3d0588@default(draft) divergent []
   |
   o  0:9092f1db7931@default(draft) added a []
   
@@ -153,7 +153,7 @@
   # User test
   # Date 0 0
   #      Thu Jan 01 00:00:00 1970 +0000
-  # Node ID 45bf1312f45468b76158b33f8426e6530c8b35b1
+  # Node ID cfcd9a3d0588dd3abd278373246f2bdd6a646647
   # Parent  9092f1db7931481f93b37d5c9fbcfc341bcd7318
   divergent
   
@@ -240,10 +240,10 @@
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   content divergent changesets on different branches.
   choose branch for the resolution changeset. (a) default or (b) watwat or (c) foobar?  c
-  working directory is now at 0ac42f1bc15c
+  working directory is now at f7d7ae0f2678
 
   $ hg glog
-  @  7:0ac42f1bc15c added d
+  @  7:f7d7ae0f2678 added d
   |   () [foobar] draft
   o  3:ca1b80f7960a added c
   |   () [default] draft
@@ -276,7 +276,7 @@
   $ hg glog
   @  9:59081c9c425a added a d with bar in it, expect some beers
   |   () [default] draft
-  | *  8:f621d00f5f0e added d
+  | *  8:41db48ee7fab added d
   |/    () [foobar] draft
   o  3:ca1b80f7960a added c
   |   () [default] draft
@@ -292,10 +292,10 @@
   with: [8] added d
   base: [7] added d
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  working directory is now at a9d6fd6b5e40
+  working directory is now at 687b947d0a60
 
   $ hg glog
-  @  10:a9d6fd6b5e40 added a d with bar in it, expect some beers
+  @  10:687b947d0a60 added a d with bar in it, expect some beers
   |   () [default] draft
   o  3:ca1b80f7960a added c
   |   () [default] draft
@@ -313,18 +313,18 @@
 
   $ hg up 'predecessors(.)' --hidden
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  updated to hidden changeset a9d6fd6b5e40
-  (hidden revision 'a9d6fd6b5e40' was rewritten as: b10b07a394f1)
-  working directory parent is obsolete! (a9d6fd6b5e40)
-  (use 'hg evolve' to update to its successor: b10b07a394f1)
+  updated to hidden changeset 687b947d0a60
+  (hidden revision '687b947d0a60' was rewritten as: 7b36e4bdcf1b)
+  working directory parent is obsolete! (687b947d0a60)
+  (use 'hg evolve' to update to its successor: 7b36e4bdcf1b)
   $ echo babar > d
   $ hg amend -m "foo to d"
   2 new content-divergent changesets
 
   $ hg glog
-  @  12:0bb497fed24a foo to d
+  @  12:9de05413bc4d foo to d
   |   () [default] draft
-  | *  11:b10b07a394f1 foo to d
+  | *  11:7b36e4bdcf1b foo to d
   |/    () [default] draft
   o  3:ca1b80f7960a added c
   |   () [default] draft
@@ -351,10 +351,10 @@
   (no more unresolved files)
   continue: hg evolve --continue
   $ hg evolve --continue
-  working directory is now at 11175423b5dc
+  working directory is now at 348265c659d9
 
   $ hg glog
-  @  13:11175423b5dc foo to d
+  @  13:348265c659d9 foo to d
   |   () [default] draft
   o  3:ca1b80f7960a added c
   |   () [default] draft
@@ -373,18 +373,18 @@
 
   $ hg up 'predecessors(.)' --hidden
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  updated to hidden changeset 11175423b5dc
-  (hidden revision '11175423b5dc' was rewritten as: 27f0463f169a)
-  working directory parent is obsolete! (11175423b5dc)
-  (use 'hg evolve' to update to its successor: 27f0463f169a)
+  updated to hidden changeset 348265c659d9
+  (hidden revision '348265c659d9' was rewritten as: e0633eb64c66)
+  working directory parent is obsolete! (348265c659d9)
+  (use 'hg evolve' to update to its successor: e0633eb64c66)
   $ echo wat > d
   $ hg amend -m "wat to d, wat?"
   2 new content-divergent changesets
 
   $ hg glog
-  @  15:f542037ddf31 wat to d, wat?
+  @  15:3eec13f9b72e wat to d, wat?
   |   () [default] draft
-  | *  14:27f0463f169a bar to d, expect beers
+  | *  14:e0633eb64c66 bar to d, expect beers
   |/    () [default] draft
   o  3:ca1b80f7960a added c
   |   () [default] draft
@@ -434,10 +434,10 @@
   
   **done showing editors text**
   
-  working directory is now at 89ea3eee2d69
+  working directory is now at 39483e49e3bb
 
   $ hg glog
-  @  16:89ea3eee2d69 watbar to d
+  @  16:39483e49e3bb watbar to d
   |   () [default] draft
   o  3:ca1b80f7960a added c
   |   () [default] draft
@@ -533,15 +533,15 @@
   a
   committing manifest
   committing changelog
-  working directory is now at 5bf84d1d71d1
+  working directory is now at b4deda8116ef
   $ hg st
   $ glog
-  @  4:5bf84d1d71d1@default(draft) bk:[] More addition
+  @  4:b4deda8116ef@default(draft) bk:[] More addition
   |
   o  0:6569b5a81c7e@default(public) bk:[] root
   
   $ hg summary
-  parent: 4:5bf84d1d71d1 tip
+  parent: 4:b4deda8116ef tip
    More addition
   branch: default
   commit: (clean)
@@ -552,7 +552,7 @@
   # User test
   # Date 0 0
   #      Thu Jan 01 00:00:00 1970 +0000
-  # Node ID 5bf84d1d71d12f451bfe1e09b93045eb6338cd6c
+  # Node ID b4deda8116effeb6eeabd0a14f40cc8b21ca1b37
   # Parent  6569b5a81c7e307ddc076550e8c0f6d75b6effcd
   More addition
   
@@ -577,9 +577,9 @@
   $ hg up --hidden 'min(desc("More addition"))'
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   updated to hidden changeset 867e43582046
-  (hidden revision '867e43582046' was rewritten as: 5bf84d1d71d1)
+  (hidden revision '867e43582046' was rewritten as: b4deda8116ef)
   working directory parent is obsolete! (867e43582046)
-  (use 'hg evolve' to update to its successor: 5bf84d1d71d1)
+  (use 'hg evolve' to update to its successor: b4deda8116ef)
   $ echo 'gotta break' >> a
   $ hg amend
   2 new content-divergent changesets
@@ -594,15 +594,15 @@
   $ glog
   @  6:13c1b75640a1@default(draft) bk:[] More addition (2)
   |
-  | *  4:5bf84d1d71d1@default(draft) bk:[] More addition
+  | *  4:b4deda8116ef@default(draft) bk:[] More addition
   |/
   o  0:6569b5a81c7e@default(public) bk:[] root
   
 
   $ hg evolve -qn --content-divergent --no-all
   hg update -c 13c1b75640a1 &&
-  hg merge 5bf84d1d71d1 &&
-  hg commit -m "auto merge resolving conflict between 13c1b75640a1 and 5bf84d1d71d1"&&
+  hg merge b4deda8116ef &&
+  hg commit -m "auto merge resolving conflict between 13c1b75640a1 and b4deda8116ef"&&
   hg up -C 867e43582046 &&
   hg revert --all --rev tip &&
   hg commit -m "`hg log -r 13c1b75640a1 --template={desc}`";
@@ -633,9 +633,9 @@
   (no more unresolved files)
   continue: hg evolve --continue
   $ hg evolve --continue
-  working directory is now at 2346e1147fed
+  working directory is now at 4a175c20d152
   $ glog
-  @  7:2346e1147fed@default(draft) bk:[] More addition (2)
+  @  7:4a175c20d152@default(draft) bk:[] More addition (2)
   |
   o  0:6569b5a81c7e@default(public) bk:[] root
   
@@ -644,7 +644,7 @@
   # User test
   # Date 0 0
   #      Thu Jan 01 00:00:00 1970 +0000
-  # Node ID 2346e1147fedc8c9aa17f9ba7870dcd8be52f567
+  # Node ID 4a175c20d152f8f4266a3b85a5dcf74b5a032719
   # Parent  6569b5a81c7e307ddc076550e8c0f6d75b6effcd
   More addition (2)
   
@@ -964,7 +964,7 @@
   merging numbers
   merging romans
   1 files updated, 2 files merged, 0 files removed, 0 files unresolved
-  working directory is now at aae293050980
+  working directory is now at ce0aaa423a89
   $ hg status
   $ hg amend -m 'E4'
   $ hg export
@@ -972,7 +972,7 @@
   # User test
   # Date 0 0
   #      Thu Jan 01 00:00:00 1970 +0000
-  # Node ID 8c2a6aae4bc5c1cc00c68276017dcef3d468e895
+  # Node ID b8e4a5a633b6fb38bbc9011601b3342573733083
   # Parent  6d1fdf6de7e2d9fc9b098aa286b60785bbeaab7a
   E4
   
@@ -995,22 +995,22 @@
   -VI
   +vi
   $ hg log -G
-  @  5:8c2a6aae4bc5@default(draft) E4 []
+  @  5:b8e4a5a633b6@default(draft) E4 []
   |
   o  0:6d1fdf6de7e2@default(draft) root []
   
   $ hg debugobsolete
   4a250e5bd992a897655e3b6f238e12452cf063e9 084ae625fa51ca8c441ba1d2bf0f974b21671017 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '9', 'operation': 'amend', 'user': 'test'}
   4a250e5bd992a897655e3b6f238e12452cf063e9 19ed1bf64a2cc2a824df5ac33a436eca1ae0475d 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '9', 'operation': 'amend', 'user': 'test'}
-  084ae625fa51ca8c441ba1d2bf0f974b21671017 aae2930509804c5a84e559eb9d631abeb9c0a340 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '9', 'operation': 'evolve', 'user': 'test'}
-  19ed1bf64a2cc2a824df5ac33a436eca1ae0475d aae2930509804c5a84e559eb9d631abeb9c0a340 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '9', 'operation': 'evolve', 'user': 'test'}
-  aae2930509804c5a84e559eb9d631abeb9c0a340 8c2a6aae4bc5c1cc00c68276017dcef3d468e895 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'test'}
+  084ae625fa51ca8c441ba1d2bf0f974b21671017 ce0aaa423a89436c9a9b320283dc0cc89f04a91d 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '11', 'operation': 'evolve', 'user': 'test'}
+  19ed1bf64a2cc2a824df5ac33a436eca1ae0475d ce0aaa423a89436c9a9b320283dc0cc89f04a91d 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '11', 'operation': 'evolve', 'user': 'test'}
+  ce0aaa423a89436c9a9b320283dc0cc89f04a91d b8e4a5a633b6fb38bbc9011601b3342573733083 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'test'}
   $ hg obslog --patch
-  @  8c2a6aae4bc5 (5) E4
+  @  b8e4a5a633b6 (5) E4
   |
-  x    aae293050980 (4) <<<<<<< divergent
-  |\     reworded(description) as 8c2a6aae4bc5 using amend by test (Thu Jan 01 00:00:00 1970 +0000)
-  | |      diff -r aae293050980 -r 8c2a6aae4bc5 changeset-description
+  x    ce0aaa423a89 (4) <<<<<<< divergent
+  |\     reworded(description) as b8e4a5a633b6 using amend by test (Thu Jan 01 00:00:00 1970 +0000)
+  | |      diff -r ce0aaa423a89 -r b8e4a5a633b6 changeset-description
   | |      --- a/changeset-description
   | |      +++ b/changeset-description
   | |      @@ -1,4 +1,1 @@
@@ -1022,8 +1022,8 @@
   | |
   | |
   x |  084ae625fa51 (2) E2
-  | |    rewritten(description, content) as aae293050980 using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
-  | |      diff -r 084ae625fa51 -r aae293050980 changeset-description
+  | |    rewritten(description, meta, content) as ce0aaa423a89 using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
+  | |      diff -r 084ae625fa51 -r ce0aaa423a89 changeset-description
   | |      --- a/changeset-description
   | |      +++ b/changeset-description
   | |      @@ -1,1 +1,4 @@
@@ -1054,8 +1054,8 @@
   | |
   | |
   | x  19ed1bf64a2c (3) E3
-  |/     rewritten(description, content) as aae293050980 using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
-  |        diff -r 19ed1bf64a2c -r aae293050980 changeset-description
+  |/     rewritten(description, meta, content) as ce0aaa423a89 using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
+  |        diff -r 19ed1bf64a2c -r ce0aaa423a89 changeset-description
   |        --- a/changeset-description
   |        +++ b/changeset-description
   |        @@ -1,1 +1,4 @@
--- a/tests/test-evolve-content-divergent-corner-cases.t	Tue May 05 16:29:52 2020 +0800
+++ b/tests/test-evolve-content-divergent-corner-cases.t	Thu Apr 30 10:05:14 2020 -0700
@@ -79,25 +79,25 @@
   with: [3] divergent
   base: [1] added b
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  working directory is now at 45bf1312f454
+  working directory is now at cfcd9a3d0588
   $ hg log -G
-  @  4:45bf1312f454@default(draft) divergent []
+  @  4:cfcd9a3d0588@default(draft) divergent []
   |
   o  0:9092f1db7931@default(draft) added a []
   
   $ hg debugobsolete
   5f6d8a4bf34ab274ccc9f631c2536964b8a3666d 8374d2ddc3a4d48428c3d2f80e4fc86f13736f96 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '9', 'operation': 'prune', 'user': 'test'}
   5f6d8a4bf34ab274ccc9f631c2536964b8a3666d 593c57f2117e33dd0884382f02789d948f548557 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '9', 'operation': 'prune', 'user': 'test'}
-  593c57f2117e33dd0884382f02789d948f548557 45bf1312f45468b76158b33f8426e6530c8b35b1 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'evolve', 'user': 'test'}
-  8374d2ddc3a4d48428c3d2f80e4fc86f13736f96 45bf1312f45468b76158b33f8426e6530c8b35b1 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'evolve', 'user': 'test'}
+  593c57f2117e33dd0884382f02789d948f548557 cfcd9a3d0588dd3abd278373246f2bdd6a646647 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '10', 'operation': 'evolve', 'user': 'test'}
+  8374d2ddc3a4d48428c3d2f80e4fc86f13736f96 cfcd9a3d0588dd3abd278373246f2bdd6a646647 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '10', 'operation': 'evolve', 'user': 'test'}
   $ hg obslog --all
-  @    45bf1312f454 (4) divergent
+  @    cfcd9a3d0588 (4) divergent
   |\
   x |  593c57f2117e (2) divergent
-  | |    amended(content) as 45bf1312f454 using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
+  | |    rewritten(meta, content) as cfcd9a3d0588 using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
   | |
   | x  8374d2ddc3a4 (3) divergent
-  |/     amended(content) as 45bf1312f454 using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
+  |/     rewritten(meta, content) as cfcd9a3d0588 using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
   |
   x  5f6d8a4bf34a (1) added b
        rewritten(description, content) as 593c57f2117e using prune by test (Thu Jan 01 00:00:00 1970 +0000)
@@ -132,7 +132,7 @@
   |/
   | o  5:48819a835615@default(draft) add _c []
   |/
-  | o  4:45bf1312f454@default(draft) divergent []
+  | o  4:cfcd9a3d0588@default(draft) divergent []
   |/
   o  0:9092f1db7931@default(draft) added a []
   
@@ -148,7 +148,7 @@
   |
   | *  6:e3ff64ce8d4c@default(draft) add cdivergent1 [content-divergent]
   |/
-  | o  4:45bf1312f454@default(draft) divergent []
+  | o  4:cfcd9a3d0588@default(draft) divergent []
   |/
   o  0:9092f1db7931@default(draft) added a []
   
@@ -157,31 +157,32 @@
   with: [7] add _c
   base: [5] add _c
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  nothing changed
-  working directory is now at e3ff64ce8d4c
+  working directory is now at c7cbb2f2c5ac
 
   $ hg log -G
-  @  6:e3ff64ce8d4c@default(draft) add cdivergent1 []
+  @  8:c7cbb2f2c5ac@default(draft) add cdivergent1 []
   |
-  | o  4:45bf1312f454@default(draft) divergent []
+  | o  4:cfcd9a3d0588@default(draft) divergent []
   |/
   o  0:9092f1db7931@default(draft) added a []
   
   $ hg debugobsolete
   5f6d8a4bf34ab274ccc9f631c2536964b8a3666d 8374d2ddc3a4d48428c3d2f80e4fc86f13736f96 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '9', 'operation': 'prune', 'user': 'test'}
   5f6d8a4bf34ab274ccc9f631c2536964b8a3666d 593c57f2117e33dd0884382f02789d948f548557 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '9', 'operation': 'prune', 'user': 'test'}
-  593c57f2117e33dd0884382f02789d948f548557 45bf1312f45468b76158b33f8426e6530c8b35b1 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'evolve', 'user': 'test'}
-  8374d2ddc3a4d48428c3d2f80e4fc86f13736f96 45bf1312f45468b76158b33f8426e6530c8b35b1 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'evolve', 'user': 'test'}
+  593c57f2117e33dd0884382f02789d948f548557 cfcd9a3d0588dd3abd278373246f2bdd6a646647 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '10', 'operation': 'evolve', 'user': 'test'}
+  8374d2ddc3a4d48428c3d2f80e4fc86f13736f96 cfcd9a3d0588dd3abd278373246f2bdd6a646647 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '10', 'operation': 'evolve', 'user': 'test'}
   48819a83561596ef0aeac4082eaaa8afe4320f3a b2ae71172042972a8e8d2bc11e2b2fe4e0c3aa49 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'prune', 'user': 'test'}
   48819a83561596ef0aeac4082eaaa8afe4320f3a e3ff64ce8d4ce33b40d9f367a8ec472fec588ca3 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '9', 'operation': 'prune', 'user': 'test'}
-  b2ae71172042972a8e8d2bc11e2b2fe4e0c3aa49 e3ff64ce8d4ce33b40d9f367a8ec472fec588ca3 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'evolve', 'user': 'test'}
-BROKEN: We should have created a new commit as successor instead of reusing
-revision 6
+  e3ff64ce8d4ce33b40d9f367a8ec472fec588ca3 c7cbb2f2c5ac9b4f3433a08a51527d6544d79096 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '2', 'operation': 'evolve', 'user': 'test'}
+  b2ae71172042972a8e8d2bc11e2b2fe4e0c3aa49 c7cbb2f2c5ac9b4f3433a08a51527d6544d79096 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '3', 'operation': 'evolve', 'user': 'test'}
   $ hg obslog --all
-  @    e3ff64ce8d4c (6) add cdivergent1
+  @    c7cbb2f2c5ac (8) add cdivergent1
   |\
-  | x  b2ae71172042 (7) add _c
-  |/     reworded(description) as e3ff64ce8d4c using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
+  x |  b2ae71172042 (7) add _c
+  | |    rewritten(description, meta) as c7cbb2f2c5ac using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
+  | |
+  | x  e3ff64ce8d4c (6) add cdivergent1
+  |/     meta-changed(meta) as c7cbb2f2c5ac using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
   |
   x  48819a835615 (5) add _c
        amended(content) as b2ae71172042 using prune by test (Thu Jan 01 00:00:00 1970 +0000)
@@ -253,26 +254,26 @@
   with: [3] bdivergent
   base: [1] add _b
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  working directory is now at 73ff357d3975
+  working directory is now at e9189d547f9f
 
   $ hg log -G
-  @  4:73ff357d3975@default(draft) bdivergent []
+  @  4:e9189d547f9f@default(draft) bdivergent []
   |
   o  0:135f39f4bd78@default(draft) add _a []
   
   $ hg debugobsolete
   37445b16603b50165d5eb80735fb986c72a2dac1 6b096fb450709a194b21fb9b192fe9b1572c4af0 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '9', 'operation': 'prune', 'user': 'test'}
   37445b16603b50165d5eb80735fb986c72a2dac1 05a6b6a9e633802d2bdd06e6d292982a767d930e 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '9', 'operation': 'prune', 'user': 'test'}
-  05a6b6a9e633802d2bdd06e6d292982a767d930e 73ff357d3975b9f319b59fd5853abc3c8294ae89 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'evolve', 'user': 'test'}
-  6b096fb450709a194b21fb9b192fe9b1572c4af0 73ff357d3975b9f319b59fd5853abc3c8294ae89 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'evolve', 'user': 'test'}
+  05a6b6a9e633802d2bdd06e6d292982a767d930e e9189d547f9f578af31ea4ff8be2ba3a8bd95e7a 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '10', 'operation': 'evolve', 'user': 'test'}
+  6b096fb450709a194b21fb9b192fe9b1572c4af0 e9189d547f9f578af31ea4ff8be2ba3a8bd95e7a 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '10', 'operation': 'evolve', 'user': 'test'}
   $ hg obslog --all
-  @    73ff357d3975 (4) bdivergent
+  @    e9189d547f9f (4) bdivergent
   |\
   x |  05a6b6a9e633 (2) bdivergent
-  | |    amended(content) as 73ff357d3975 using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
+  | |    rewritten(meta, content) as e9189d547f9f using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
   | |
   | x  6b096fb45070 (3) bdivergent
-  |/     amended(content) as 73ff357d3975 using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
+  |/     rewritten(meta, content) as e9189d547f9f using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
   |
   x  37445b16603b (1) add _b
        rewritten(description, content) as 05a6b6a9e633 using prune by test (Thu Jan 01 00:00:00 1970 +0000)
@@ -355,10 +356,10 @@
   You can use (c)hanged version, leave (d)eleted, or leave (u)nresolved.
   What do you want to do? c
   0 files updated, 1 files merged, 0 files removed, 0 files unresolved
-  working directory is now at eb6357cd41b6
+  working directory is now at 5deaa504a865
 
   $ hg glog -l1
-  @  9:eb6357cd41b6 updated e
+  @  9:5deaa504a865 updated e
   |   () [default] draft
   ~
 
@@ -368,16 +369,16 @@
   9150fe93bec603cd88d05cda9f6ff13420cb53e9 0 {155349b645beebee15325a9a22dd0c9ef8fbbbd3} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'prune', 'user': 'test'}
   ff6f7cd76a7c97d938e8fe87f0fc816b66929435 0ceb21ca2557a61433f097e4d64024e37cae2c10 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'evolve', 'user': 'test'}
   de4ea3103326293994c634101e780724346ee89f a2465d1d56d1aee8ed90d2292978456d2be6f7b9 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'evolve', 'user': 'test'}
-  0ceb21ca2557a61433f097e4d64024e37cae2c10 eb6357cd41b6a6ec2f12e81cf96eaeeb54b057d2 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'evolve', 'user': 'test'}
-  a2465d1d56d1aee8ed90d2292978456d2be6f7b9 eb6357cd41b6a6ec2f12e81cf96eaeeb54b057d2 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'evolve', 'user': 'test'}
+  0ceb21ca2557a61433f097e4d64024e37cae2c10 5deaa504a865ac3f3fe772c50a583a427aa76449 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '10', 'operation': 'evolve', 'user': 'test'}
+  a2465d1d56d1aee8ed90d2292978456d2be6f7b9 5deaa504a865ac3f3fe772c50a583a427aa76449 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '2', 'operation': 'evolve', 'user': 'test'}
   $ hg obslog --all
-  @    eb6357cd41b6 (9) updated e
+  @    5deaa504a865 (9) updated e
   |\
   x |  0ceb21ca2557 (7) updated e
-  | |    amended(content) as eb6357cd41b6 using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
+  | |    rewritten(meta, content) as 5deaa504a865 using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
   | |
   | x  a2465d1d56d1 (8) updated e
-  | |    rewritten as eb6357cd41b6 using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
+  | |    meta-changed(meta) as 5deaa504a865 using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
   | |
   | x  de4ea3103326 (6) updated e
   | |    rebased(parent) as a2465d1d56d1 using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
@@ -440,9 +441,9 @@
   with: [3] delete a
   base: [1] delete a
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  working directory is now at 7ca6a9fafcf6
+  working directory is now at 48942a623d38
   $ hg glog
-  @  4:7ca6a9fafcf6 delete a
+  @  4:48942a623d38 delete a
   |   () [default] draft
   o  0:75d2b02c4a5c initial
       () [default] draft
@@ -458,16 +459,16 @@
   $ hg debugobsolete
   dff6e52f5e419381c070159c8038ac948f59283f 0825dcee2670349e749f1df45857fca34f61e350 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'}
   dff6e52f5e419381c070159c8038ac948f59283f 92ecd58f9b05d6c0a1c3833a79359eea4b0268ff 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'}
-  0825dcee2670349e749f1df45857fca34f61e350 7ca6a9fafcf619820b754070ac0b447651005422 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'evolve', 'user': 'test'}
-  92ecd58f9b05d6c0a1c3833a79359eea4b0268ff 7ca6a9fafcf619820b754070ac0b447651005422 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'evolve', 'user': 'test'}
+  0825dcee2670349e749f1df45857fca34f61e350 48942a623d383b1ff275f1194ead88d2e697b18b 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '10', 'operation': 'evolve', 'user': 'test'}
+  92ecd58f9b05d6c0a1c3833a79359eea4b0268ff 48942a623d383b1ff275f1194ead88d2e697b18b 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '10', 'operation': 'evolve', 'user': 'test'}
   $ hg obslog --all
-  @    7ca6a9fafcf6 (4) delete a
+  @    48942a623d38 (4) delete a
   |\
   x |  0825dcee2670 (2) delete a
-  | |    amended(content) as 7ca6a9fafcf6 using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
+  | |    rewritten(meta, content) as 48942a623d38 using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
   | |
   | x  92ecd58f9b05 (3) delete a
-  |/     amended(content) as 7ca6a9fafcf6 using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
+  |/     rewritten(meta, content) as 48942a623d38 using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
   |
   x  dff6e52f5e41 (1) delete a
        amended(content) as 0825dcee2670 using amend by test (Thu Jan 01 00:00:00 1970 +0000)
--- a/tests/test-evolve-content-divergent-first-changeset.t	Tue May 05 16:29:52 2020 +0800
+++ b/tests/test-evolve-content-divergent-first-changeset.t	Thu Apr 30 10:05:14 2020 -0700
@@ -41,6 +41,6 @@
   with: [2] div2
   base: [0] test
   0 files updated, 1 files merged, 0 files removed, 0 files unresolved
-  working directory is now at 12772224141b
+  working directory is now at 3b448ec6f793
 
   $ hg evolve --list
--- a/tests/test-evolve-content-divergent-interrupted.t	Tue May 05 16:29:52 2020 +0800
+++ b/tests/test-evolve-content-divergent-interrupted.t	Thu Apr 30 10:05:14 2020 -0700
@@ -197,7 +197,7 @@
   merge:[5] added d
   with: [7] added d
   base: [4] added d
-  rebasing "divergent" content-divergent changeset e49523854bc8 on ddcf04e1458c
+  rebasing "divergent" content-divergent changeset e49523854bc8 on 0194d1974f1a
   merging d
   warning: conflicts while merging d! (edit, then use 'hg resolve --mark')
   0 files updated, 0 files merged, 0 files removed, 1 files unresolved
--- a/tests/test-evolve-content-divergent-meta.t	Tue May 05 16:29:52 2020 +0800
+++ b/tests/test-evolve-content-divergent-meta.t	Thu Apr 30 10:05:14 2020 -0700
@@ -93,7 +93,7 @@
 
 Make sure resultant cset don't replace the initial user with user running the command:
   $ hg log -r tip
-  changeset:   5:443bd2972210
+  changeset:   5:51370cfb7970
   tag:         tip
   parent:      1:1740ad2a1eda
   user:        foo <foo@test.com>
@@ -133,7 +133,7 @@
   with: [4] added c
   base: [2] added c
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  working directory is now at 932d6ceb7672
+  working directory is now at 2c906136b0c8
 
   $ hg log -r tip | grep "^user"
   user:        foouser
@@ -154,7 +154,7 @@
   with: [5] updated c
   base: [2] added c
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  working directory is now at 202a770d8c1f
+  working directory is now at f530f5fa1045
 
   $ hg log -r tip | grep "^user"
   user:        baruser, foouser
@@ -219,15 +219,15 @@
   with: [4] add foo.txt
   base: [1] add foo.txt
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  working directory is now at 6c144bb30333
+  working directory is now at 02379380f598
   $ hg log -r 'desc("add foo.txt")' -T '{rev} {node|short} {date|isodate}: {join(obsfate, "; ")}\n'
-  5 6c144bb30333 1969-12-31 23:59 -0000: 
+  5 02379380f598 1969-12-31 23:59 -0000: 
 
 date: updated one one side to an older value
 
   $ hg strip .
   0 files updated, 0 files merged, 2 files removed, 0 files unresolved
-  saved backup bundle to $TESTTMP/divergingdate/.hg/strip-backup/6c144bb30333-72e26b88-backup.hg
+  saved backup bundle to $TESTTMP/divergingdate/.hg/strip-backup/02379380f598-2f67671c-backup.hg
   2 new content-divergent changesets
   $ hg up tip
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
@@ -266,15 +266,15 @@
   with: [5] add foo.txt
   base: [1] add foo.txt
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  working directory is now at 806d0024c04d
+  working directory is now at ab764e1dbab6
   $ hg log -r . --hidden -T '{rev} {node|short} {date|isodate}: {join(obsfate, "; ")}\n'
-  6 806d0024c04d 1969-12-31 23:59 -0000: 
+  6 ab764e1dbab6 1969-12-31 23:59 -0000: 
 
 date: updated one side to an newer value
 
   $ hg strip .
   0 files updated, 0 files merged, 2 files removed, 0 files unresolved
-  saved backup bundle to $TESTTMP/divergingdate/.hg/strip-backup/806d0024c04d-24cb28ad-backup.hg
+  saved backup bundle to $TESTTMP/divergingdate/.hg/strip-backup/ab764e1dbab6-970f1c73-backup.hg
   2 new content-divergent changesets
   $ hg update a25dd7af6cf6 --hidden
   2 files updated, 0 files merged, 0 files removed, 0 files unresolved
@@ -315,15 +315,15 @@
   with: [6] add foo.txt
   base: [1] add foo.txt
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  working directory is now at 51e08ac59670
+  working directory is now at d294ee10286d
   $ hg log -r . --hidden -T '{rev} {node|short} {date|isodate}: {join(obsfate, "; ")}\n'
-  7 51e08ac59670 1970-01-01 00:02 +0000: 
+  7 d294ee10286d 1970-01-01 00:02 +0000: 
 
 date: updated each side to a different value, newer should win
 
   $ hg strip .
   0 files updated, 0 files merged, 2 files removed, 0 files unresolved
-  saved backup bundle to $TESTTMP/divergingdate/.hg/strip-backup/51e08ac59670-d8a3c2ca-backup.hg
+  saved backup bundle to $TESTTMP/divergingdate/.hg/strip-backup/d294ee10286d-09948d16-backup.hg
   2 new content-divergent changesets
   $ hg up tip
   2 files updated, 0 files merged, 0 files removed, 0 files unresolved
@@ -365,8 +365,8 @@
   with: [8] add foo.txt
   base: [1] add foo.txt
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  working directory is now at ab7c0a425dc9
+  working directory is now at 1cdf2cb09946
   $ hg log -r . --hidden -T '{rev} {node|short} {date|isodate}: {join(obsfate, "; ")}\n'
-  9 ab7c0a425dc9 1970-01-01 00:13 +0000: 
+  9 1cdf2cb09946 1970-01-01 00:13 +0000: 
 
   $ cd ..
--- a/tests/test-evolve-content-divergent-relocation.t	Tue May 05 16:29:52 2020 +0800
+++ b/tests/test-evolve-content-divergent-relocation.t	Thu Apr 30 10:05:14 2020 -0700
@@ -70,10 +70,10 @@
   base: [2] added b
   rebasing "other" content-divergent changeset da4b96f4a8d6 on c7586e2a9264
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  working directory is now at 171614c9a791
+  working directory is now at f8f130ec5d39
 
   $ hg glog
-  @  8:171614c9a791 added b
+  @  8:f8f130ec5d39 added b
   |   () [default] draft
   | *  4:c41c793e0ef1 added d
   | |   () [default] draft
@@ -91,11 +91,11 @@
   # User test
   # Date 0 0
   #      Thu Jan 01 00:00:00 1970 +0000
-  # Node ID 171614c9a7914c53f531373b95632323fdbbac8d
+  # Node ID f8f130ec5d399699738abf984a885baa4fa9f06c
   # Parent  c7586e2a92645e473645847a7b69a6dc52be4276
   added b
   
-  diff -r c7586e2a9264 -r 171614c9a791 b
+  diff -r c7586e2a9264 -r f8f130ec5d39 b
   --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   +++ b/b	Thu Jan 01 00:00:00 1970 +0000
   @@ -0,0 +1,1 @@
@@ -105,16 +105,16 @@
   b1661037fa25511d0b7ccddf405e336f9d7d3424 7ed0642d644bb9ad93d252dd9ffe7b4729febe48 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'}
   b1661037fa25511d0b7ccddf405e336f9d7d3424 da4b96f4a8d610a85b225583138f681d67e275dd 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'}
   da4b96f4a8d610a85b225583138f681d67e275dd 11f849d7159fa30a63dbbc1a6d251a8d996baeb5 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'evolve', 'user': 'test'}
-  7ed0642d644bb9ad93d252dd9ffe7b4729febe48 171614c9a7914c53f531373b95632323fdbbac8d 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'evolve', 'user': 'test'}
-  11f849d7159fa30a63dbbc1a6d251a8d996baeb5 171614c9a7914c53f531373b95632323fdbbac8d 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'evolve', 'user': 'test'}
+  7ed0642d644bb9ad93d252dd9ffe7b4729febe48 f8f130ec5d399699738abf984a885baa4fa9f06c 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '2', 'operation': 'evolve', 'user': 'test'}
+  11f849d7159fa30a63dbbc1a6d251a8d996baeb5 f8f130ec5d399699738abf984a885baa4fa9f06c 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '10', 'operation': 'evolve', 'user': 'test'}
   $ hg obslog --all
-  @    171614c9a791 (8) added b
+  @    f8f130ec5d39 (8) added b
   |\
   x |  11f849d7159f (7) added b
-  | |    amended(content) as 171614c9a791 using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
+  | |    rewritten(meta, content) as f8f130ec5d39 using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
   | |
   | x  7ed0642d644b (5) added b
-  | |    rewritten as 171614c9a791 using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
+  | |    meta-changed(meta) as f8f130ec5d39 using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
   | |
   x |  da4b96f4a8d6 (6) added b
   |/     rebased(parent) as 11f849d7159f using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
@@ -131,11 +131,11 @@
   atop:[8] added b
   move:[4] added d
   $ hg glog
-  o  10:4ae4427ee9f8 added d
+  o  10:d34e10c64365 added d
   |   () [default] draft
-  o  9:917281f93fcb added c
+  o  9:65f70b47129d added c
   |   () [default] draft
-  @  8:171614c9a791 added b
+  @  8:f8f130ec5d39 added b
   |   () [default] draft
   o  1:c7586e2a9264 added a
   |   () [default] draft
@@ -147,7 +147,7 @@
   $ echo x > x
   $ hg ci -Aqm "added x"
   $ hg glog -r .
-  @  11:71a392c714b5 added x
+  @  11:19fde4a13e16 added x
   |   () [default] draft
   ~
 
@@ -159,24 +159,24 @@
 
   $ hg up 'predecessors(.)' --hidden
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  updated to hidden changeset 71a392c714b5
-  (hidden revision '71a392c714b5' was rewritten as: 1e1a50385a7d)
-  working directory parent is obsolete! (71a392c714b5)
-  (use 'hg evolve' to update to its successor: 1e1a50385a7d)
+  updated to hidden changeset 19fde4a13e16
+  (hidden revision '19fde4a13e16' was rewritten as: 271db13e4ad1)
+  working directory parent is obsolete! (19fde4a13e16)
+  (use 'hg evolve' to update to its successor: 271db13e4ad1)
   $ hg rebase -r . -d 'desc("added d")' --config experimental.evolution.allowdivergence=True
-  rebasing 11:71a392c714b5 "added x"
+  rebasing 11:19fde4a13e16 "added x"
   2 new content-divergent changesets
 
   $ hg glog
-  @  13:1e4f6b3bb39b added x
+  @  13:eb9a1b31b6d8 added x
   |   () [default] draft
-  | *  12:1e1a50385a7d added foo to x
+  | *  12:271db13e4ad1 added foo to x
   | |   () [bar] draft
-  o |  10:4ae4427ee9f8 added d
+  o |  10:d34e10c64365 added d
   | |   () [default] draft
-  o |  9:917281f93fcb added c
+  o |  9:65f70b47129d added c
   |/    () [default] draft
-  o  8:171614c9a791 added b
+  o  8:f8f130ec5d39 added b
   |   () [default] draft
   o  1:c7586e2a9264 added a
   |   () [default] draft
@@ -187,9 +187,9 @@
   merge:[13] added x
   with: [12] added foo to x
   base: [11] added x
-  rebasing "other" content-divergent changeset 1e1a50385a7d on 4ae4427ee9f8
+  rebasing "other" content-divergent changeset 271db13e4ad1 on d34e10c64365
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  working directory is now at b006cf317e0e
+  working directory is now at 806f7694feb1
 
   $ hg exp
   # HG changeset patch
@@ -197,11 +197,11 @@
   # Date 0 0
   #      Thu Jan 01 00:00:00 1970 +0000
   # Branch bar
-  # Node ID b006cf317e0ed16dbe786c439577475580f645f1
-  # Parent  4ae4427ee9f8f0935211fd66360948b77ab5aee9
+  # Node ID 806f7694feb1c58fdd7bf656445f3bd5463a008e
+  # Parent  d34e10c643651d577eef840b427b58d9bd6ae3f0
   added foo to x
   
-  diff -r 4ae4427ee9f8 -r b006cf317e0e x
+  diff -r d34e10c64365 -r 806f7694feb1 x
   --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   +++ b/x	Thu Jan 01 00:00:00 1970 +0000
   @@ -0,0 +1,1 @@
@@ -210,13 +210,13 @@
 The above `hg exp` and the following log call demonstrates that message, content
 and branch change is preserved in case of relocation
   $ hg glog
-  @  15:b006cf317e0e added foo to x
+  @  15:806f7694feb1 added foo to x
   |   () [bar] draft
-  o  10:4ae4427ee9f8 added d
+  o  10:d34e10c64365 added d
   |   () [default] draft
-  o  9:917281f93fcb added c
+  o  9:65f70b47129d added c
   |   () [default] draft
-  o  8:171614c9a791 added b
+  o  8:f8f130ec5d39 added b
   |   () [default] draft
   o  1:c7586e2a9264 added a
   |   () [default] draft
@@ -227,30 +227,30 @@
   b1661037fa25511d0b7ccddf405e336f9d7d3424 7ed0642d644bb9ad93d252dd9ffe7b4729febe48 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'}
   b1661037fa25511d0b7ccddf405e336f9d7d3424 da4b96f4a8d610a85b225583138f681d67e275dd 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'}
   da4b96f4a8d610a85b225583138f681d67e275dd 11f849d7159fa30a63dbbc1a6d251a8d996baeb5 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'evolve', 'user': 'test'}
-  7ed0642d644bb9ad93d252dd9ffe7b4729febe48 171614c9a7914c53f531373b95632323fdbbac8d 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'evolve', 'user': 'test'}
-  11f849d7159fa30a63dbbc1a6d251a8d996baeb5 171614c9a7914c53f531373b95632323fdbbac8d 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'evolve', 'user': 'test'}
-  ca1b80f7960aae2306287bab52b4090c59af8c29 917281f93fcbf255c034742f02bd31d8de88e94d 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'evolve', 'user': 'test'}
-  c41c793e0ef1ddb463e85ea9491e377d01127ba2 4ae4427ee9f8f0935211fd66360948b77ab5aee9 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'evolve', 'user': 'test'}
-  71a392c714b59ec54318a9fdc92c551a72a45790 1e1a50385a7d943eaab338376933b4fdef791d0c 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '73', 'operation': 'amend', 'user': 'test'}
-  71a392c714b59ec54318a9fdc92c551a72a45790 1e4f6b3bb39b4ed75bdd8ae089b17b55bd074998 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'}
-  1e1a50385a7d943eaab338376933b4fdef791d0c 80cc9b1ec65032a21b4dbf53d6c408a2816823b0 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'evolve', 'user': 'test'}
-  1e4f6b3bb39b4ed75bdd8ae089b17b55bd074998 b006cf317e0ed16dbe786c439577475580f645f1 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '73', 'operation': 'evolve', 'user': 'test'}
-  80cc9b1ec65032a21b4dbf53d6c408a2816823b0 b006cf317e0ed16dbe786c439577475580f645f1 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'evolve', 'user': 'test'}
+  7ed0642d644bb9ad93d252dd9ffe7b4729febe48 f8f130ec5d399699738abf984a885baa4fa9f06c 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '2', 'operation': 'evolve', 'user': 'test'}
+  11f849d7159fa30a63dbbc1a6d251a8d996baeb5 f8f130ec5d399699738abf984a885baa4fa9f06c 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '10', 'operation': 'evolve', 'user': 'test'}
+  ca1b80f7960aae2306287bab52b4090c59af8c29 65f70b47129d8466acbdc70bfb1efef3d05388e7 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'evolve', 'user': 'test'}
+  c41c793e0ef1ddb463e85ea9491e377d01127ba2 d34e10c643651d577eef840b427b58d9bd6ae3f0 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'evolve', 'user': 'test'}
+  19fde4a13e167ceb55fcfd7937268027f7e716f0 271db13e4ad11d4ca78b12e74e7341cb74c05a85 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '73', 'operation': 'amend', 'user': 'test'}
+  19fde4a13e167ceb55fcfd7937268027f7e716f0 eb9a1b31b6d812c036ca547aca2931edde6d1e06 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'}
+  271db13e4ad11d4ca78b12e74e7341cb74c05a85 16810a5772dd9a27f4c0302d4e41009a2518588c 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'evolve', 'user': 'test'}
+  eb9a1b31b6d812c036ca547aca2931edde6d1e06 806f7694feb1c58fdd7bf656445f3bd5463a008e 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '75', 'operation': 'evolve', 'user': 'test'}
+  16810a5772dd9a27f4c0302d4e41009a2518588c 806f7694feb1c58fdd7bf656445f3bd5463a008e 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '2', 'operation': 'evolve', 'user': 'test'}
   $ hg obslog --all
-  @    b006cf317e0e (15) added foo to x
+  @    806f7694feb1 (15) added foo to x
   |\
-  x |  1e4f6b3bb39b (13) added x
-  | |    rewritten(description, branch, content) as b006cf317e0e using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
+  x |  16810a5772dd (14) added foo to x
+  | |    meta-changed(meta) as 806f7694feb1 using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
   | |
-  | x  80cc9b1ec650 (14) added foo to x
-  | |    rewritten as b006cf317e0e using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
+  | x  eb9a1b31b6d8 (13) added x
+  | |    rewritten(description, meta, branch, content) as 806f7694feb1 using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
   | |
-  | x  1e1a50385a7d (12) added foo to x
-  |/     rebased(parent) as 80cc9b1ec650 using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
+  x |  271db13e4ad1 (12) added foo to x
+  |/     rebased(parent) as 16810a5772dd using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
   |
-  x  71a392c714b5 (11) added x
-       rewritten(description, branch, content) as 1e1a50385a7d using amend by test (Thu Jan 01 00:00:00 1970 +0000)
-       rebased(parent) as 1e4f6b3bb39b using rebase by test (Thu Jan 01 00:00:00 1970 +0000)
+  x  19fde4a13e16 (11) added x
+       rewritten(description, branch, content) as 271db13e4ad1 using amend by test (Thu Jan 01 00:00:00 1970 +0000)
+       rebased(parent) as eb9a1b31b6d8 using rebase by test (Thu Jan 01 00:00:00 1970 +0000)
   
 
 Testing when both the content-divergence are on different parents and resolution
@@ -263,7 +263,7 @@
   $ echo y > y
   $ hg ci -Aqm "added y"
   $ hg glog -r .
-  @  16:fc6ad2bac162 added y
+  @  16:6a167ad77c24 added y
   |   () [default] draft
   ~
 
@@ -272,28 +272,28 @@
 
   $ hg up 'predecessors(.)' --hidden
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  updated to hidden changeset fc6ad2bac162
-  (hidden revision 'fc6ad2bac162' was rewritten as: 2a9f6ccbdeba)
-  working directory parent is obsolete! (fc6ad2bac162)
-  (use 'hg evolve' to update to its successor: 2a9f6ccbdeba)
+  updated to hidden changeset 6a167ad77c24
+  (hidden revision '6a167ad77c24' was rewritten as: 856e7b6a8392)
+  working directory parent is obsolete! (6a167ad77c24)
+  (use 'hg evolve' to update to its successor: 856e7b6a8392)
   $ hg rebase -r . -d 'desc("added foo to x")' --config experimental.evolution.allowdivergence=True
-  rebasing 16:fc6ad2bac162 "added y"
+  rebasing 16:6a167ad77c24 "added y"
   2 new content-divergent changesets
   $ echo wat > y
   $ hg amend
 
   $ hg glog
-  @  19:b4575ed6fcfc added y
+  @  19:750fd38fec35 added y
   |   () [bar] draft
-  | *  17:2a9f6ccbdeba added y
+  | *  17:856e7b6a8392 added y
   | |   () [default] draft
-  o |  15:b006cf317e0e added foo to x
+  o |  15:806f7694feb1 added foo to x
   | |   () [bar] draft
-  o |  10:4ae4427ee9f8 added d
+  o |  10:d34e10c64365 added d
   | |   () [default] draft
-  o |  9:917281f93fcb added c
+  o |  9:65f70b47129d added c
   |/    () [default] draft
-  o  8:171614c9a791 added b
+  o  8:f8f130ec5d39 added b
   |   () [default] draft
   o  1:c7586e2a9264 added a
   |   () [default] draft
@@ -304,7 +304,7 @@
   merge:[19] added y
   with: [17] added y
   base: [16] added y
-  rebasing "other" content-divergent changeset 2a9f6ccbdeba on b006cf317e0e
+  rebasing "other" content-divergent changeset 856e7b6a8392 on 806f7694feb1
   merging y
   warning: conflicts while merging y! (edit, then use 'hg resolve --mark')
   0 files updated, 0 files merged, 0 files removed, 1 files unresolved
@@ -317,18 +317,18 @@
   (no more unresolved files)
   continue: hg evolve --continue
   $ hg evolve --continue
-  working directory is now at 7bbcf24ddecf
+  working directory is now at 68ce3ad10d10
 
   $ hg glog
-  @  21:7bbcf24ddecf added y
+  @  21:68ce3ad10d10 added y
   |   () [bar] draft
-  o  15:b006cf317e0e added foo to x
+  o  15:806f7694feb1 added foo to x
   |   () [bar] draft
-  o  10:4ae4427ee9f8 added d
+  o  10:d34e10c64365 added d
   |   () [default] draft
-  o  9:917281f93fcb added c
+  o  9:65f70b47129d added c
   |   () [default] draft
-  o  8:171614c9a791 added b
+  o  8:f8f130ec5d39 added b
   |   () [default] draft
   o  1:c7586e2a9264 added a
   |   () [default] draft
@@ -339,39 +339,39 @@
   b1661037fa25511d0b7ccddf405e336f9d7d3424 7ed0642d644bb9ad93d252dd9ffe7b4729febe48 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'}
   b1661037fa25511d0b7ccddf405e336f9d7d3424 da4b96f4a8d610a85b225583138f681d67e275dd 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'}
   da4b96f4a8d610a85b225583138f681d67e275dd 11f849d7159fa30a63dbbc1a6d251a8d996baeb5 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'evolve', 'user': 'test'}
-  7ed0642d644bb9ad93d252dd9ffe7b4729febe48 171614c9a7914c53f531373b95632323fdbbac8d 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'evolve', 'user': 'test'}
-  11f849d7159fa30a63dbbc1a6d251a8d996baeb5 171614c9a7914c53f531373b95632323fdbbac8d 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'evolve', 'user': 'test'}
-  ca1b80f7960aae2306287bab52b4090c59af8c29 917281f93fcbf255c034742f02bd31d8de88e94d 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'evolve', 'user': 'test'}
-  c41c793e0ef1ddb463e85ea9491e377d01127ba2 4ae4427ee9f8f0935211fd66360948b77ab5aee9 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'evolve', 'user': 'test'}
-  71a392c714b59ec54318a9fdc92c551a72a45790 1e1a50385a7d943eaab338376933b4fdef791d0c 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '73', 'operation': 'amend', 'user': 'test'}
-  71a392c714b59ec54318a9fdc92c551a72a45790 1e4f6b3bb39b4ed75bdd8ae089b17b55bd074998 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'}
-  1e1a50385a7d943eaab338376933b4fdef791d0c 80cc9b1ec65032a21b4dbf53d6c408a2816823b0 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'evolve', 'user': 'test'}
-  1e4f6b3bb39b4ed75bdd8ae089b17b55bd074998 b006cf317e0ed16dbe786c439577475580f645f1 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '73', 'operation': 'evolve', 'user': 'test'}
-  80cc9b1ec65032a21b4dbf53d6c408a2816823b0 b006cf317e0ed16dbe786c439577475580f645f1 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'evolve', 'user': 'test'}
-  fc6ad2bac162918f2639860797d7a68b5d673d62 2a9f6ccbdeba62f1ba8323dffb05eb5c21b90715 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'}
-  fc6ad2bac162918f2639860797d7a68b5d673d62 96b677f01b81d04c9f05db36888a375f7039b9b8 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '68', 'operation': 'rebase', 'user': 'test'}
-  96b677f01b81d04c9f05db36888a375f7039b9b8 b4575ed6fcfceef525fd3b4aa678e93d359db724 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'}
-  2a9f6ccbdeba62f1ba8323dffb05eb5c21b90715 48f745db3f5300363ca248b9aeab20ff2a55fbb3 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'evolve', 'user': 'test'}
-  b4575ed6fcfceef525fd3b4aa678e93d359db724 7bbcf24ddecfe97d7c2ac6fa8c07c155c8fda47b 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'evolve', 'user': 'test'}
-  48f745db3f5300363ca248b9aeab20ff2a55fbb3 7bbcf24ddecfe97d7c2ac6fa8c07c155c8fda47b 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '72', 'operation': 'evolve', 'user': 'test'}
+  7ed0642d644bb9ad93d252dd9ffe7b4729febe48 f8f130ec5d399699738abf984a885baa4fa9f06c 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '2', 'operation': 'evolve', 'user': 'test'}
+  11f849d7159fa30a63dbbc1a6d251a8d996baeb5 f8f130ec5d399699738abf984a885baa4fa9f06c 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '10', 'operation': 'evolve', 'user': 'test'}
+  ca1b80f7960aae2306287bab52b4090c59af8c29 65f70b47129d8466acbdc70bfb1efef3d05388e7 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'evolve', 'user': 'test'}
+  c41c793e0ef1ddb463e85ea9491e377d01127ba2 d34e10c643651d577eef840b427b58d9bd6ae3f0 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'evolve', 'user': 'test'}
+  19fde4a13e167ceb55fcfd7937268027f7e716f0 271db13e4ad11d4ca78b12e74e7341cb74c05a85 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '73', 'operation': 'amend', 'user': 'test'}
+  19fde4a13e167ceb55fcfd7937268027f7e716f0 eb9a1b31b6d812c036ca547aca2931edde6d1e06 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'}
+  271db13e4ad11d4ca78b12e74e7341cb74c05a85 16810a5772dd9a27f4c0302d4e41009a2518588c 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'evolve', 'user': 'test'}
+  eb9a1b31b6d812c036ca547aca2931edde6d1e06 806f7694feb1c58fdd7bf656445f3bd5463a008e 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '75', 'operation': 'evolve', 'user': 'test'}
+  16810a5772dd9a27f4c0302d4e41009a2518588c 806f7694feb1c58fdd7bf656445f3bd5463a008e 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '2', 'operation': 'evolve', 'user': 'test'}
+  6a167ad77c24406c8093b735220c7fe75ed313a6 856e7b6a8392638923637851f93d2e6b4196c37f 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'}
+  6a167ad77c24406c8093b735220c7fe75ed313a6 9916514079c2e21fac219b2e31735a065e83ced8 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '68', 'operation': 'rebase', 'user': 'test'}
+  9916514079c2e21fac219b2e31735a065e83ced8 750fd38fec355bf4dc56c36443c9b6d59670946c 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'}
+  856e7b6a8392638923637851f93d2e6b4196c37f 1376c32668b4d8f3073bf8dde759afaf4ac512e2 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'evolve', 'user': 'test'}
+  750fd38fec355bf4dc56c36443c9b6d59670946c 68ce3ad10d102c3d5dafb324a1b90a0a356dbb8e 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '10', 'operation': 'evolve', 'user': 'test'}
+  1376c32668b4d8f3073bf8dde759afaf4ac512e2 68ce3ad10d102c3d5dafb324a1b90a0a356dbb8e 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '74', 'operation': 'evolve', 'user': 'test'}
   $ hg obslog -r . --all
-  @    7bbcf24ddecf (21) added y
+  @    68ce3ad10d10 (21) added y
   |\
-  x |  48f745db3f53 (20) added y
-  | |    rewritten(branch, content) as 7bbcf24ddecf using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
+  x |  1376c32668b4 (20) added y
+  | |    rewritten(meta, branch, content) as 68ce3ad10d10 using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
   | |
-  | x  b4575ed6fcfc (19) added y
-  | |    amended(content) as 7bbcf24ddecf using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
+  | x  750fd38fec35 (19) added y
+  | |    rewritten(meta, content) as 68ce3ad10d10 using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
   | |
-  x |  2a9f6ccbdeba (17) added y
-  | |    rebased(parent) as 48f745db3f53 using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
+  x |  856e7b6a8392 (17) added y
+  | |    rebased(parent) as 1376c32668b4 using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
   | |
-  | x  96b677f01b81 (18) added y
-  |/     amended(content) as b4575ed6fcfc using amend by test (Thu Jan 01 00:00:00 1970 +0000)
+  | x  9916514079c2 (18) added y
+  |/     amended(content) as 750fd38fec35 using amend by test (Thu Jan 01 00:00:00 1970 +0000)
   |
-  x  fc6ad2bac162 (16) added y
-       amended(content) as 2a9f6ccbdeba using amend by test (Thu Jan 01 00:00:00 1970 +0000)
-       rewritten(branch, parent) as 96b677f01b81 using rebase by test (Thu Jan 01 00:00:00 1970 +0000)
+  x  6a167ad77c24 (16) added y
+       amended(content) as 856e7b6a8392 using amend by test (Thu Jan 01 00:00:00 1970 +0000)
+       rewritten(branch, parent) as 9916514079c2 using rebase by test (Thu Jan 01 00:00:00 1970 +0000)
   
 
 checking that relocated commit is there
@@ -380,11 +380,11 @@
   # User test
   # Date 0 0
   #      Thu Jan 01 00:00:00 1970 +0000
-  # Node ID 48f745db3f5300363ca248b9aeab20ff2a55fbb3
-  # Parent  b006cf317e0ed16dbe786c439577475580f645f1
+  # Node ID 1376c32668b4d8f3073bf8dde759afaf4ac512e2
+  # Parent  806f7694feb1c58fdd7bf656445f3bd5463a008e
   added y
   
-  diff -r b006cf317e0e -r 48f745db3f53 y
+  diff -r 806f7694feb1 -r 1376c32668b4 y
   --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   +++ b/y	Thu Jan 01 00:00:00 1970 +0000
   @@ -0,0 +1,1 @@
@@ -394,15 +394,15 @@
 ----------------------------------------------------------------------
 
   $ hg glog
-  @  21:7bbcf24ddecf added y
+  @  21:68ce3ad10d10 added y
   |   () [bar] draft
-  o  15:b006cf317e0e added foo to x
+  o  15:806f7694feb1 added foo to x
   |   () [bar] draft
-  o  10:4ae4427ee9f8 added d
+  o  10:d34e10c64365 added d
   |   () [default] draft
-  o  9:917281f93fcb added c
+  o  9:65f70b47129d added c
   |   () [default] draft
-  o  8:171614c9a791 added b
+  o  8:f8f130ec5d39 added b
   |   () [default] draft
   o  1:c7586e2a9264 added a
   |   () [default] draft
@@ -415,7 +415,7 @@
   $ echo z > z
   $ hg ci -Aqm "added z"
   $ hg glog -r .
-  @  22:daf1de08f3b0 added z
+  @  22:2d5d2b8719d6 added z
   |   () [default] draft
   ~
 
@@ -425,30 +425,30 @@
 
   $ hg up 'predecessors(.)' --hidden
   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
-  updated to hidden changeset daf1de08f3b0
-  (hidden revision 'daf1de08f3b0' was rewritten as: 3f7a1f693080)
-  working directory parent is obsolete! (daf1de08f3b0)
-  (use 'hg evolve' to update to its successor: 3f7a1f693080)
+  updated to hidden changeset 2d5d2b8719d6
+  (hidden revision '2d5d2b8719d6' was rewritten as: ff9e3b1b6df8)
+  working directory parent is obsolete! (2d5d2b8719d6)
+  (use 'hg evolve' to update to its successor: ff9e3b1b6df8)
   $ hg rebase -r . -d 'desc("added y")' --config experimental.evolution.allowdivergence=True
-  rebasing 22:daf1de08f3b0 "added z"
+  rebasing 22:2d5d2b8719d6 "added z"
   2 new content-divergent changesets
   $ echo bar > z
   $ hg amend
 
   $ hg glog
-  @  25:53242575ffa9 added z
+  @  25:f8b6462d0f09 added z
   |   () [bar] draft
-  | *  23:3f7a1f693080 added z
+  | *  23:ff9e3b1b6df8 added z
   | |   () [default] draft
-  o |  21:7bbcf24ddecf added y
+  o |  21:68ce3ad10d10 added y
   | |   () [bar] draft
-  o |  15:b006cf317e0e added foo to x
+  o |  15:806f7694feb1 added foo to x
   | |   () [bar] draft
-  o |  10:4ae4427ee9f8 added d
+  o |  10:d34e10c64365 added d
   | |   () [default] draft
-  o |  9:917281f93fcb added c
+  o |  9:65f70b47129d added c
   |/    () [default] draft
-  o  8:171614c9a791 added b
+  o  8:f8f130ec5d39 added b
   |   () [default] draft
   o  1:c7586e2a9264 added a
   |   () [default] draft
@@ -459,7 +459,7 @@
   merge:[25] added z
   with: [23] added z
   base: [22] added z
-  rebasing "other" content-divergent changeset 3f7a1f693080 on 7bbcf24ddecf
+  rebasing "other" content-divergent changeset ff9e3b1b6df8 on 68ce3ad10d10
   merging y
   warning: conflicts while merging y! (edit, then use 'hg resolve --mark')
   unresolved merge conflicts
@@ -467,16 +467,16 @@
   [1]
 
   $ hg diff
-  diff -r 7bbcf24ddecf y
+  diff -r 68ce3ad10d10 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 @@
-  +<<<<<<< destination: 7bbcf24ddecf bar - test: added y
+  +<<<<<<< destination: 68ce3ad10d10 bar - test: added y
    watbar
   +=======
   +foo
-  +>>>>>>> evolving:    3f7a1f693080 - test: added z
-  diff -r 7bbcf24ddecf z
+  +>>>>>>> evolving:    ff9e3b1b6df8 - test: added z
+  diff -r 68ce3ad10d10 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 @@
@@ -488,7 +488,7 @@
   continue: hg evolve --continue
 
   $ hg evolve --continue
-  evolving 23:3f7a1f693080 "added z"
+  evolving 23:ff9e3b1b6df8 "added z"
   merging y
   warning: conflicts while merging y! (edit, then use 'hg resolve --mark')
   0 files updated, 0 files merged, 0 files removed, 1 files unresolved
@@ -497,35 +497,35 @@
   [1]
 
   $ hg diff
-  diff -r 53242575ffa9 y
+  diff -r f8b6462d0f09 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: 53242575ffa9 bar - test: added z
+  +<<<<<<< local: f8b6462d0f09 bar - test: added z
    watbar
   +=======
   +foo
-  +>>>>>>> other: cdb0643c69fc - test: added z
+  +>>>>>>> other: 53bfc763e92e - test: added z
 
   $ echo foo > y
   $ hg resolve -m
   (no more unresolved files)
   continue: hg evolve --continue
   $ hg evolve --continue
-  working directory is now at 6fc7d9682de6
+  working directory is now at d17538c7d8eb
 
   $ hg glog
-  @  27:6fc7d9682de6 added z
+  @  27:d17538c7d8eb added z
   |   () [bar] draft
-  o  21:7bbcf24ddecf added y
+  o  21:68ce3ad10d10 added y
   |   () [bar] draft
-  o  15:b006cf317e0e added foo to x
+  o  15:806f7694feb1 added foo to x
   |   () [bar] draft
-  o  10:4ae4427ee9f8 added d
+  o  10:d34e10c64365 added d
   |   () [default] draft
-  o  9:917281f93fcb added c
+  o  9:65f70b47129d added c
   |   () [default] draft
-  o  8:171614c9a791 added b
+  o  8:f8f130ec5d39 added b
   |   () [default] draft
   o  1:c7586e2a9264 added a
   |   () [default] draft
@@ -538,17 +538,17 @@
   # Date 0 0
   #      Thu Jan 01 00:00:00 1970 +0000
   # Branch bar
-  # Node ID 6fc7d9682de6e3bee6c8b1266b756ed7d522b7e4
-  # Parent  7bbcf24ddecfe97d7c2ac6fa8c07c155c8fda47b
+  # Node ID d17538c7d8eb057a9ed807d29ff951e9f7940e83
+  # Parent  68ce3ad10d102c3d5dafb324a1b90a0a356dbb8e
   added z
   
-  diff -r 7bbcf24ddecf -r 6fc7d9682de6 y
+  diff -r 68ce3ad10d10 -r d17538c7d8eb 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 7bbcf24ddecf -r 6fc7d9682de6 z
+  diff -r 68ce3ad10d10 -r d17538c7d8eb 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 @@
@@ -558,45 +558,45 @@
   b1661037fa25511d0b7ccddf405e336f9d7d3424 7ed0642d644bb9ad93d252dd9ffe7b4729febe48 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'}
   b1661037fa25511d0b7ccddf405e336f9d7d3424 da4b96f4a8d610a85b225583138f681d67e275dd 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'}
   da4b96f4a8d610a85b225583138f681d67e275dd 11f849d7159fa30a63dbbc1a6d251a8d996baeb5 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'evolve', 'user': 'test'}
-  7ed0642d644bb9ad93d252dd9ffe7b4729febe48 171614c9a7914c53f531373b95632323fdbbac8d 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'evolve', 'user': 'test'}
-  11f849d7159fa30a63dbbc1a6d251a8d996baeb5 171614c9a7914c53f531373b95632323fdbbac8d 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'evolve', 'user': 'test'}
-  ca1b80f7960aae2306287bab52b4090c59af8c29 917281f93fcbf255c034742f02bd31d8de88e94d 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'evolve', 'user': 'test'}
-  c41c793e0ef1ddb463e85ea9491e377d01127ba2 4ae4427ee9f8f0935211fd66360948b77ab5aee9 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'evolve', 'user': 'test'}
-  71a392c714b59ec54318a9fdc92c551a72a45790 1e1a50385a7d943eaab338376933b4fdef791d0c 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '73', 'operation': 'amend', 'user': 'test'}
-  71a392c714b59ec54318a9fdc92c551a72a45790 1e4f6b3bb39b4ed75bdd8ae089b17b55bd074998 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'}
-  1e1a50385a7d943eaab338376933b4fdef791d0c 80cc9b1ec65032a21b4dbf53d6c408a2816823b0 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'evolve', 'user': 'test'}
-  1e4f6b3bb39b4ed75bdd8ae089b17b55bd074998 b006cf317e0ed16dbe786c439577475580f645f1 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '73', 'operation': 'evolve', 'user': 'test'}
-  80cc9b1ec65032a21b4dbf53d6c408a2816823b0 b006cf317e0ed16dbe786c439577475580f645f1 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'evolve', 'user': 'test'}
-  fc6ad2bac162918f2639860797d7a68b5d673d62 2a9f6ccbdeba62f1ba8323dffb05eb5c21b90715 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'}
-  fc6ad2bac162918f2639860797d7a68b5d673d62 96b677f01b81d04c9f05db36888a375f7039b9b8 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '68', 'operation': 'rebase', 'user': 'test'}
-  96b677f01b81d04c9f05db36888a375f7039b9b8 b4575ed6fcfceef525fd3b4aa678e93d359db724 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'}
-  2a9f6ccbdeba62f1ba8323dffb05eb5c21b90715 48f745db3f5300363ca248b9aeab20ff2a55fbb3 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'evolve', 'user': 'test'}
-  b4575ed6fcfceef525fd3b4aa678e93d359db724 7bbcf24ddecfe97d7c2ac6fa8c07c155c8fda47b 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'evolve', 'user': 'test'}
-  48f745db3f5300363ca248b9aeab20ff2a55fbb3 7bbcf24ddecfe97d7c2ac6fa8c07c155c8fda47b 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '72', 'operation': 'evolve', 'user': 'test'}
-  daf1de08f3b087fbdfabcce3b4d39bf7e190ff44 3f7a1f693080b1ba36c6c55527565aaba03eb13e 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'}
-  daf1de08f3b087fbdfabcce3b4d39bf7e190ff44 8e9a5449d6a680f68932fa3b40f7758cf12e84ce 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '68', 'operation': 'rebase', 'user': 'test'}
-  8e9a5449d6a680f68932fa3b40f7758cf12e84ce 53242575ffa9604951b1da01db01bea6872afe05 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'}
-  3f7a1f693080b1ba36c6c55527565aaba03eb13e cdb0643c69fcdf622d62d317f049223a1255bc10 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '12', 'operation': 'evolve', 'user': 'test'}
-  53242575ffa9604951b1da01db01bea6872afe05 6fc7d9682de6e3bee6c8b1266b756ed7d522b7e4 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'evolve', 'user': 'test'}
-  cdb0643c69fcdf622d62d317f049223a1255bc10 6fc7d9682de6e3bee6c8b1266b756ed7d522b7e4 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '72', 'operation': 'evolve', 'user': 'test'}
+  7ed0642d644bb9ad93d252dd9ffe7b4729febe48 f8f130ec5d399699738abf984a885baa4fa9f06c 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '2', 'operation': 'evolve', 'user': 'test'}
+  11f849d7159fa30a63dbbc1a6d251a8d996baeb5 f8f130ec5d399699738abf984a885baa4fa9f06c 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '10', 'operation': 'evolve', 'user': 'test'}
+  ca1b80f7960aae2306287bab52b4090c59af8c29 65f70b47129d8466acbdc70bfb1efef3d05388e7 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'evolve', 'user': 'test'}
+  c41c793e0ef1ddb463e85ea9491e377d01127ba2 d34e10c643651d577eef840b427b58d9bd6ae3f0 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'evolve', 'user': 'test'}
+  19fde4a13e167ceb55fcfd7937268027f7e716f0 271db13e4ad11d4ca78b12e74e7341cb74c05a85 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '73', 'operation': 'amend', 'user': 'test'}
+  19fde4a13e167ceb55fcfd7937268027f7e716f0 eb9a1b31b6d812c036ca547aca2931edde6d1e06 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'}
+  271db13e4ad11d4ca78b12e74e7341cb74c05a85 16810a5772dd9a27f4c0302d4e41009a2518588c 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'evolve', 'user': 'test'}
+  eb9a1b31b6d812c036ca547aca2931edde6d1e06 806f7694feb1c58fdd7bf656445f3bd5463a008e 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '75', 'operation': 'evolve', 'user': 'test'}
+  16810a5772dd9a27f4c0302d4e41009a2518588c 806f7694feb1c58fdd7bf656445f3bd5463a008e 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '2', 'operation': 'evolve', 'user': 'test'}
+  6a167ad77c24406c8093b735220c7fe75ed313a6 856e7b6a8392638923637851f93d2e6b4196c37f 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'}
+  6a167ad77c24406c8093b735220c7fe75ed313a6 9916514079c2e21fac219b2e31735a065e83ced8 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '68', 'operation': 'rebase', 'user': 'test'}
+  9916514079c2e21fac219b2e31735a065e83ced8 750fd38fec355bf4dc56c36443c9b6d59670946c 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'}
+  856e7b6a8392638923637851f93d2e6b4196c37f 1376c32668b4d8f3073bf8dde759afaf4ac512e2 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'evolve', 'user': 'test'}
+  750fd38fec355bf4dc56c36443c9b6d59670946c 68ce3ad10d102c3d5dafb324a1b90a0a356dbb8e 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '10', 'operation': 'evolve', 'user': 'test'}
+  1376c32668b4d8f3073bf8dde759afaf4ac512e2 68ce3ad10d102c3d5dafb324a1b90a0a356dbb8e 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '74', 'operation': 'evolve', 'user': 'test'}
+  2d5d2b8719d63d07b1c4bf5b5ea30b924b00a83e ff9e3b1b6df81fe45e8aad1fa86145588da0d20f 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'}
+  2d5d2b8719d63d07b1c4bf5b5ea30b924b00a83e 30de78f605eb1cf2f31edfe9c34789118e7f47a0 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '68', 'operation': 'rebase', 'user': 'test'}
+  30de78f605eb1cf2f31edfe9c34789118e7f47a0 f8b6462d0f09ea491c801a49094cb452d4197333 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'}
+  ff9e3b1b6df81fe45e8aad1fa86145588da0d20f 53bfc763e92e5ce04f978fde72667eab1d7e01fb 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '12', 'operation': 'evolve', 'user': 'test'}
+  f8b6462d0f09ea491c801a49094cb452d4197333 d17538c7d8eb057a9ed807d29ff951e9f7940e83 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '10', 'operation': 'evolve', 'user': 'test'}
+  53bfc763e92e5ce04f978fde72667eab1d7e01fb d17538c7d8eb057a9ed807d29ff951e9f7940e83 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '74', 'operation': 'evolve', 'user': 'test'}
   $ hg obslog --all
-  @    6fc7d9682de6 (27) added z
+  @    d17538c7d8eb (27) added z
   |\
-  x |  53242575ffa9 (25) added z
-  | |    amended(content) as 6fc7d9682de6 using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
+  x |  53bfc763e92e (26) added z
+  | |    rewritten(meta, branch, content) as d17538c7d8eb using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
   | |
-  | x  cdb0643c69fc (26) added z
-  | |    rewritten(branch, content) as 6fc7d9682de6 using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
+  | x  f8b6462d0f09 (25) added z
+  | |    rewritten(meta, content) as d17538c7d8eb using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
   | |
-  | x  3f7a1f693080 (23) added z
-  | |    rewritten(parent, content) as cdb0643c69fc using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
+  | x  30de78f605eb (24) added z
+  | |    amended(content) as f8b6462d0f09 using amend by test (Thu Jan 01 00:00:00 1970 +0000)
   | |
-  x |  8e9a5449d6a6 (24) added z
-  |/     amended(content) as 53242575ffa9 using amend by test (Thu Jan 01 00:00:00 1970 +0000)
+  x |  ff9e3b1b6df8 (23) added z
+  |/     rewritten(parent, content) as 53bfc763e92e using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
   |
-  x  daf1de08f3b0 (22) added z
-       amended(content) as 3f7a1f693080 using amend by test (Thu Jan 01 00:00:00 1970 +0000)
-       rewritten(branch, parent) as 8e9a5449d6a6 using rebase by test (Thu Jan 01 00:00:00 1970 +0000)
+  x  2d5d2b8719d6 (22) added z
+       rewritten(branch, parent) as 30de78f605eb using rebase by test (Thu Jan 01 00:00:00 1970 +0000)
+       amended(content) as ff9e3b1b6df8 using amend by test (Thu Jan 01 00:00:00 1970 +0000)
   
 
   $ cd ..
--- a/tests/test-evolve-content-divergent-stack.t	Tue May 05 16:29:52 2020 +0800
+++ b/tests/test-evolve-content-divergent-stack.t	Thu Apr 30 10:05:14 2020 -0700
@@ -148,28 +148,28 @@
   merge:[6] added b
   with: [10] added b
   base: [2] added b
-  rebasing "divergent" content-divergent changeset d5f148423c16 on f66f262fff6c
+  rebasing "divergent" content-divergent changeset d5f148423c16 on f9ec70805963
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   merge:[7] added c
   with: [11] added c
   base: [3] added c
-  rebasing "divergent" content-divergent changeset 3ce4be6d8e5e on eadfd9d70680
+  rebasing "divergent" content-divergent changeset 3ce4be6d8e5e on fa0055a90894
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   merge:[8] added d
   with: [12] added d
   base: [4] added d
-  rebasing "divergent" content-divergent changeset c72d2885eb51 on b2cac10f3836
+  rebasing "divergent" content-divergent changeset c72d2885eb51 on 0b6449a7ad07
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  working directory is now at f66f262fff6c
+  working directory is now at f9ec70805963
 
   $ hg glog
-  o  19:038fe7db3d88 added d
+  o  19:2b48850357ee added d
   |   () [default] draft
-  o  17:b2cac10f3836 added c
+  o  17:0b6449a7ad07 added c
   |   () [default] draft
-  o  15:eadfd9d70680 added b
+  o  15:fa0055a90894 added b
   |   () [default] draft
-  @  13:f66f262fff6c watbar to a
+  @  13:f9ec70805963 watbar to a
   |   () [default] draft
   o  0:8fa14d15e168 added hgignore
       () [default] draft
@@ -319,31 +319,31 @@
   merge:[11] added b
   with: [6] added b
   base: [2] added b
-  rebasing "divergent" content-divergent changeset 6eb54b5af3fb on 74fbf3e6a0b6
-  rebasing "other" content-divergent changeset d5f148423c16 on 74fbf3e6a0b6
+  rebasing "divergent" content-divergent changeset 6eb54b5af3fb on c68b60ab6619
+  rebasing "other" content-divergent changeset d5f148423c16 on c68b60ab6619
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   merge:[12] added c
   with: [7] added c
   base: [3] added c
-  rebasing "divergent" content-divergent changeset 8ed612937375 on 4e29776e83a5
-  rebasing "other" content-divergent changeset 3ce4be6d8e5e on 4e29776e83a5
+  rebasing "divergent" content-divergent changeset 8ed612937375 on ff90e9515d17
+  rebasing "other" content-divergent changeset 3ce4be6d8e5e on ff90e9515d17
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   merge:[13] added d
   with: [8] added d
   base: [4] added d
-  rebasing "divergent" content-divergent changeset d45f050514c2 on 77126af93a25
-  rebasing "other" content-divergent changeset c72d2885eb51 on 77126af93a25
+  rebasing "divergent" content-divergent changeset d45f050514c2 on 4270af019ebe
+  rebasing "other" content-divergent changeset c72d2885eb51 on 4270af019ebe
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  working directory is now at 74fbf3e6a0b6
+  working directory is now at c68b60ab6619
 
   $ hg glog
-  o  24:c8f73c376a6e added d
+  o  24:78efb5c9d581 added d
   |   () [default] draft
-  o  21:77126af93a25 added c
+  o  21:4270af019ebe added c
   |   () [default] draft
-  o  18:4e29776e83a5 added b
+  o  18:ff90e9515d17 added b
   |   () [default] draft
-  @  15:74fbf3e6a0b6 watbar to a
+  @  15:c68b60ab6619 watbar to a
   |   () [default] draft
   o  9:2228e3b74514 add newfile
   |   () [default] draft
@@ -355,7 +355,7 @@
 
   $ hg strip 14: --hidden
   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
-  saved backup bundle to $TESTTMP/stackrepo1/.hg/strip-backup/74fbf3e6a0b6-f3612603-backup.hg
+  saved backup bundle to $TESTTMP/stackrepo1/.hg/strip-backup/c68b60ab6619-a957686d-backup.hg
   8 new content-divergent changesets
 
 Prepare repo to have merge conflicts
@@ -368,7 +368,7 @@
   rebasing "other" content-divergent changeset 8e222f257bbf on 2228e3b74514
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   6 new orphan changesets
-  working directory is now at 74fbf3e6a0b6
+  working directory is now at c68b60ab6619
   $ echo b_conflict > b
   $ hg amend -A
   adding b
@@ -378,7 +378,7 @@
   merge:[11] added b
   with: [6] added b
   base: [2] added b
-  rebasing "divergent" content-divergent changeset 6eb54b5af3fb on 119989a4317e
+  rebasing "divergent" content-divergent changeset 6eb54b5af3fb on 1a1d3f0cfe5a
   merging b
   warning: conflicts while merging b! (edit, then use 'hg resolve --mark')
   unresolved merge conflicts
@@ -391,7 +391,7 @@
   continue: hg evolve --continue
   $ hg evolve --continue
   evolving 11:6eb54b5af3fb "added b"
-  rebasing "other" content-divergent changeset d5f148423c16 on 119989a4317e
+  rebasing "other" content-divergent changeset d5f148423c16 on 1a1d3f0cfe5a
   merging b
   warning: conflicts while merging b! (edit, then use 'hg resolve --mark')
   unresolved merge conflicts
@@ -408,24 +408,24 @@
   merge:[12] added c
   with: [7] added c
   base: [3] added c
-  rebasing "divergent" content-divergent changeset 8ed612937375 on 646bd3372ee7
-  rebasing "other" content-divergent changeset 3ce4be6d8e5e on 646bd3372ee7
+  rebasing "divergent" content-divergent changeset 8ed612937375 on 58f146beb59b
+  rebasing "other" content-divergent changeset 3ce4be6d8e5e on 58f146beb59b
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   merge:[13] added d
   with: [8] added d
   base: [4] added d
-  rebasing "divergent" content-divergent changeset d45f050514c2 on 67abc597e636
-  rebasing "other" content-divergent changeset c72d2885eb51 on 67abc597e636
+  rebasing "divergent" content-divergent changeset d45f050514c2 on 6f6ca0d5d239
+  rebasing "other" content-divergent changeset c72d2885eb51 on 6f6ca0d5d239
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  working directory is now at 119989a4317e
+  working directory is now at 1a1d3f0cfe5a
   $ hg glog
-  o  25:5e2572194f59 added d
+  o  25:b8c8157a53cd added d
   |   () [default] draft
-  o  22:67abc597e636 added c
+  o  22:6f6ca0d5d239 added c
   |   () [default] draft
-  o  19:646bd3372ee7 added b
+  o  19:58f146beb59b added b
   |   () [default] draft
-  @  16:119989a4317e watbar to a
+  @  16:1a1d3f0cfe5a watbar to a
   |   () [default] draft
   o  9:2228e3b74514 add newfile
   |   () [default] draft
@@ -436,7 +436,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/74fbf3e6a0b6-15474722-backup.hg
+  saved backup bundle to $TESTTMP/stackrepo1/.hg/strip-backup/c68b60ab6619-3384c553-backup.hg
   8 new content-divergent changesets
 
 Insert conflicting changes in between the stack of content-div csets
@@ -477,8 +477,8 @@
   merge:[14] added b
   with: [17] added b
   base: [2] added b
-  rebasing "divergent" content-divergent changeset 2a955e808c53 on 74fbf3e6a0b6
-  rebasing "other" content-divergent changeset 509103439e5e on 74fbf3e6a0b6
+  rebasing "divergent" content-divergent changeset 2a955e808c53 on c68b60ab6619
+  rebasing "other" content-divergent changeset 509103439e5e on c68b60ab6619
   merging b
   warning: conflicts while merging b! (edit, then use 'hg resolve --mark')
   0 files updated, 0 files merged, 0 files removed, 1 files unresolved
@@ -578,8 +578,8 @@
   merge:[14] added b
   with: [17] added b
   base: [2] added b
-  rebasing "divergent" content-divergent changeset 2a955e808c53 on 74fbf3e6a0b6
-  rebasing "other" content-divergent changeset 509103439e5e on 74fbf3e6a0b6
+  rebasing "divergent" content-divergent changeset 2a955e808c53 on c68b60ab6619
+  rebasing "other" content-divergent changeset 509103439e5e on c68b60ab6619
   merging b
   warning: conflicts while merging b! (edit, then use 'hg resolve --mark')
   0 files updated, 0 files merged, 0 files removed, 1 files unresolved
@@ -593,7 +593,7 @@
   stopped the interrupted evolve
   working directory is now at 2a955e808c53
   $ hg log -G
-  o  changeset:   21:74fbf3e6a0b6
+  o  changeset:   21:c68b60ab6619
   |  tag:         tip
   |  parent:      9:2228e3b74514
   |  user:        test
@@ -641,7 +641,7 @@
   +---x  changeset:   10:c04ff147ef79
   | |    user:        test
   | |    date:        Thu Jan 01 00:00:00 1970 +0000
-  | |    obsolete:    rewritten using evolve as 21:74fbf3e6a0b6
+  | |    obsolete:    rewritten using evolve as 21:c68b60ab6619
   | |    summary:     added a
   | |
   o |  changeset:   9:2228e3b74514
@@ -654,7 +654,7 @@
   |/   parent:      0:8fa14d15e168
   |    user:        test
   |    date:        Thu Jan 01 00:00:00 1970 +0000
-  |    obsolete:    rebased using evolve as 21:74fbf3e6a0b6
+  |    obsolete:    rewritten using evolve as 21:c68b60ab6619
   |    summary:     watbar to a
   |
   o  changeset:   0:8fa14d15e168
@@ -663,13 +663,13 @@
      summary:     added hgignore
   
   $ hg obslog -r 'desc("watbar to a")' --all
-  o    74fbf3e6a0b6 (21) watbar to a
+  o    c68b60ab6619 (21) watbar to a
   |\
   x |  186bdc2cdfa2 (20) watbar to a
-  | |    rewritten as 74fbf3e6a0b6 using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
+  | |    meta-changed(meta) as c68b60ab6619 using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
   | |
   | x  c04ff147ef79 (10) added a
-  | |    rewritten(description, content) as 74fbf3e6a0b6 using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
+  | |    rewritten(description, meta, content) as c68b60ab6619 using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
   | |
   x |  8e222f257bbf (5) watbar to a
   |/     rebased(parent) as 186bdc2cdfa2 using evolve by test (Thu Jan 01 00:00:00 1970 +0000)
@@ -699,8 +699,8 @@
   merge:[14] added b
   with: [17] added b
   base: [2] added b
-  rebasing "divergent" content-divergent changeset 2a955e808c53 on 74fbf3e6a0b6
-  rebasing "other" content-divergent changeset 509103439e5e on 74fbf3e6a0b6
+  rebasing "divergent" content-divergent changeset 2a955e808c53 on c68b60ab6619
+  rebasing "other" content-divergent changeset 509103439e5e on c68b60ab6619
   merging b
   warning: conflicts while merging b! (edit, then use 'hg resolve --mark')
   0 files updated, 0 files merged, 0 files removed, 1 files unresolved
@@ -716,16 +716,16 @@
   merge:[15] added c
   with: [18] added c
   base: [3] added c
-  rebasing "divergent" content-divergent changeset 48b0f803817a on 4e29776e83a5
-  rebasing "other" content-divergent changeset eaf34afe4df3 on 4e29776e83a5
+  rebasing "divergent" content-divergent changeset 48b0f803817a on f51f02e0d589
+  rebasing "other" content-divergent changeset eaf34afe4df3 on f51f02e0d589
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   merge:[16] added d
   with: [19] added d
   base: [4] added d
-  rebasing "divergent" content-divergent changeset 91c8ccb9c241 on 77126af93a25
-  rebasing "other" content-divergent changeset c351be27f199 on 77126af93a25
+  rebasing "divergent" content-divergent changeset 91c8ccb9c241 on f0edb9305414
+  rebasing "other" content-divergent changeset c351be27f199 on f0edb9305414
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  working directory is now at 4e29776e83a5
+  working directory is now at f51f02e0d589
 
   $ hg evolve -l
 
@@ -860,8 +860,8 @@
   merge:[7] c
   with: [4] c
   base: [2] c
-  rebasing "divergent" content-divergent changeset ef4885dea3da on 0999c349998d
-  rebasing "other" content-divergent changeset fef59171875e on 0999c349998d
+  rebasing "divergent" content-divergent changeset ef4885dea3da on 744161d6411b
+  rebasing "other" content-divergent changeset fef59171875e on 744161d6411b
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
 Expected result:
@@ -869,15 +869,15 @@
 Changeset with description "c" only adds file "c" with content "c".
 
   $ hg glog -l2 -p
-  o  12:4ca627f76da9 c
-  |   () [default] draftdiff -r 0999c349998d -r 4ca627f76da9 c
+  o  12:4f07c2bae326 c
+  |   () [default] draftdiff -r 744161d6411b -r 4f07c2bae326 c
   |  --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   |  +++ b/c	Thu Jan 01 00:00:00 1970 +0000
   |  @@ -0,0 +1,1 @@
   |  +c
   |
-  o  9:0999c349998d b
-  |   () [default] draftdiff -r 980f7dc84c29 -r 0999c349998d b
+  o  9:744161d6411b b
+  |   () [default] draftdiff -r 980f7dc84c29 -r 744161d6411b b
   ~  --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
      +++ b/b	Thu Jan 01 00:00:00 1970 +0000
      @@ -0,0 +1,1 @@
@@ -963,16 +963,16 @@
   merge:[9] added bar and car
   with: [5] added bar and car
   base: [2] added bar and car
-  rebasing "divergent" content-divergent changeset 7dd5b9d42ef3 on 8ef6ad88580d
-  rebasing "other" content-divergent changeset f4ed107810a7 on 8ef6ad88580d
+  rebasing "divergent" content-divergent changeset 7dd5b9d42ef3 on 79e1386ae402
+  rebasing "other" content-divergent changeset f4ed107810a7 on 79e1386ae402
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   2 new orphan changesets
-  working directory is now at 8ef6ad88580d
+  working directory is now at 79e1386ae402
 
   $ hg glog
-  o  15:09ba686a465e added bar and car
+  o  15:f0a0eeecf543 added bar and car
   |   () [default] draft
-  @  12:8ef6ad88580d added foo
+  @  12:79e1386ae402 added foo
   |   () [default] draft
   | *  10:9a1f460df8b5 added dar
   | |   () [default] draft
--- a/tests/test-evolve-issue5958.t	Tue May 05 16:29:52 2020 +0800
+++ b/tests/test-evolve-issue5958.t	Thu Apr 30 10:05:14 2020 -0700
@@ -91,4 +91,4 @@
   base: [1] add foo.txt
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   1 new orphan changesets
-  working directory is now at 459c64f7eaad
+  working directory is now at 8b11b92203c7
--- a/tests/test-evolve-public-content-divergent-corner-cases.t	Tue May 05 16:29:52 2020 +0800
+++ b/tests/test-evolve-public-content-divergent-corner-cases.t	Thu Apr 30 10:05:14 2020 -0700
@@ -137,14 +137,14 @@
   base: [2] added c
   rebasing "other" content-divergent changeset f5f9b4fc8b77 on c9241b0f2d5b
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  committed as 3b336cbee992
-  working directory is now at 3b336cbee992
+  committed as 454f3998cb58
+  working directory is now at 454f3998cb58
 
   $ hg glog -p
-  @  8:3b336cbee992 phase-divergent update to c0d7ee6604ea:
+  @  8:454f3998cb58 phase-divergent update to c0d7ee6604ea:
   |   draft
   |
-  |  diff -r c0d7ee6604ea -r 3b336cbee992 c
+  |  diff -r c0d7ee6604ea -r 454f3998cb58 c
   |  --- a/c	Thu Jan 01 00:00:00 1970 +0000
   |  +++ b/c	Thu Jan 01 00:00:00 1970 +0000
   |  @@ -1,1 +1,2 @@
@@ -447,27 +447,27 @@
   continue: hg evolve --continue
 
   $ hg evolve --continue
-  committed as bc1f4610744c
-  working directory is now at bc1f4610744c
+  committed as 0c67e963324a
+  working directory is now at 0c67e963324a
 
   $ hg export
   # HG changeset patch
   # User test
   # Date 0 0
   #      Thu Jan 01 00:00:00 1970 +0000
-  # Node ID bc1f4610744c6aa0e851d3876a61bfff6243b31c
+  # Node ID 0c67e963324a7f1c84ece16c7d971268b862d8bd
   # Parent  93cd84bbdacaeb8f881c29a609dbdd30c38cbc57
   phase-divergent update to 93cd84bbdaca:
   
   added c e
   
-  diff -r 93cd84bbdaca -r bc1f4610744c d
+  diff -r 93cd84bbdaca -r 0c67e963324a 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 bc1f4610744c e
+  diff -r 93cd84bbdaca -r 0c67e963324a 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-main.t	Tue May 05 16:29:52 2020 +0800
+++ b/tests/test-evolve-public-content-divergent-main.t	Thu Apr 30 10:05:14 2020 -0700
@@ -77,16 +77,16 @@
   base: [1] added b
   merging b
   0 files updated, 1 files merged, 0 files removed, 0 files unresolved
-  committed as c1aa9cfb6cf8
-  working directory is now at c1aa9cfb6cf8
+  committed as d1939bca1663
+  working directory is now at d1939bca1663
 
 Following graph log shows that it correctly merged the two divergent csets:
 
   $ hg glog -p
-  @  5:c1aa9cfb6cf8 phase-divergent update to 44f360db368f:
+  @  5:d1939bca1663 phase-divergent update to 44f360db368f:
   |   draft
   |
-  |  diff -r 44f360db368f -r c1aa9cfb6cf8 b
+  |  diff -r 44f360db368f -r d1939bca1663 b
   |  --- a/b	Thu Jan 01 00:00:00 1970 +0000
   |  +++ b/b	Thu Jan 01 00:00:00 1970 +0000
   |  @@ -1,2 +1,3 @@
@@ -181,11 +181,11 @@
   (no more unresolved files)
   continue: hg evolve --continue
   $ hg evolve --continue
-  committed as 1a739394e9d4
-  working directory is now at 1a739394e9d4
+  committed as c2581b54d60b
+  working directory is now at c2581b54d60b
 
   $ hg glog
-  @  5:1a739394e9d4 phase-divergent update to 580f2d01e52c:
+  @  5:c2581b54d60b phase-divergent update to 580f2d01e52c:
   |   draft
   |
   %  2:580f2d01e52c added b
@@ -271,11 +271,11 @@
   base: [3] added d
   rebasing "other" content-divergent changeset 4291d72ee19a on 155349b645be
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  committed as 4cbe48a0c3d9
-  working directory is now at 4cbe48a0c3d9
+  committed as f725f11cbd60
+  working directory is now at f725f11cbd60
 
   $ hg glog -l 1
-  @  8:4cbe48a0c3d9 phase-divergent update to 93cd84bbdaca:
+  @  8:f725f11cbd60 phase-divergent update to 93cd84bbdaca:
   |   draft
   ~
 
@@ -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 412dde898967
-  working directory is now at 412dde898967
+  committed as 334db71a5c88
+  working directory is now at 334db71a5c88
   $ hg export
   # HG changeset patch
   # User test
   # Date 0 0
   #      Thu Jan 01 00:00:00 1970 +0000
-  # Node ID 412dde898967b50e7d334aefff778a9af46d29d1
+  # Node ID 334db71a5c8882e05b058211106160276f7f4dfc
   # Parent  93cd84bbdacaeb8f881c29a609dbdd30c38cbc57
   phase-divergent update to 93cd84bbdaca:
   
   added d c e
   
-  diff -r 93cd84bbdaca -r 412dde898967 e
+  diff -r 93cd84bbdaca -r 334db71a5c88 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 @@
@@ -500,7 +500,7 @@
   continue: hg evolve --continue
 
   $ hg evolve --continue
-  committed as 2a0f44767904
+  committed as b1775d4db34b
   working directory is now at 93cd84bbdaca
 
   $ hg evolve -l
@@ -628,7 +628,7 @@
   continue: hg evolve --continue
 
   $ hg evolve --continue
-  committed as b9082a9e66ce
+  committed as 55e73d2050d5
   working directory is now at 93cd84bbdaca
 
   $ hg evolve -l
--- a/tests/test-sharing.t	Tue May 05 16:29:52 2020 +0800
+++ b/tests/test-sharing.t	Thu Apr 30 10:05:14 2020 -0700
@@ -520,12 +520,12 @@
   with: [6] fix bug 24 (v2 by alice)
   base: [4] fix bug 24 (v1)
   0 files updated, 1 files merged, 0 files removed, 0 files unresolved
-  working directory is now at aa824ceedb8b
+  working directory is now at 0978c15d2db6
   $ hg log -q -r 'contentdivergent()'
 
 Figure SG10: Bob's repository after fixing divergence.
   $ hg --hidden shortlog -G -r 3::
-  @  7:aa82  draft  fix bug 24 (v2 by bob)
+  @  7:0978  draft  fix bug 24 (v2 by bob)
   |
   | x  6:e3a5  draft  fix bug 24 (v2 by alice)
   |/
--- a/tests/test-topic-stack-complex.t	Tue May 05 16:29:52 2020 +0800
+++ b/tests/test-topic-stack-complex.t	Thu Apr 30 10:05:14 2020 -0700
@@ -177,7 +177,7 @@
   with: [s4] Added e and f
   base: [3] Added e and f
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  working directory is now at 80b2ddbf01d3
+  working directory is now at e680be04d270
 
   $ hg log -r . -T '{date|hgdate}\n'
   0 1