changeset 3564:589649021ea1

fold: include "operation" metadata in obsmarkers
author Martin von Zweigbergk <martinvonz@google.com>
date Mon, 12 Mar 2018 15:50:59 -0700
parents d4c457c1ae0d
children cfe31185ad07
files hgext3rd/evolve/cmdrewrite.py tests/test-evolve-obshistory-complex.t tests/test-evolve-obshistory.t tests/test-evolve-templates.t tests/test-evolve.t tests/test-uncommit.t
diffstat 6 files changed, 93 insertions(+), 88 deletions(-) [+]
line wrap: on
line diff
--- a/hgext3rd/evolve/cmdrewrite.py	Mon Mar 12 15:50:45 2018 -0700
+++ b/hgext3rd/evolve/cmdrewrite.py	Mon Mar 12 15:50:59 2018 -0700
@@ -613,7 +613,8 @@
                                                         commitopts=commitopts)
             phases.retractboundary(repo, tr, targetphase, [newid])
             compat.createmarkers(repo, [(ctx, (repo[newid],))
-                                 for ctx in allctx], metadata=metadata)
+                                 for ctx in allctx], metadata=metadata,
+                                 operation="fold")
             # move bookmarks from old nodes to the new one
             # XXX: we should make rewriteutil.rewrite() handle such cases
             for ctx in allctx:
--- a/tests/test-evolve-obshistory-complex.t	Mon Mar 12 15:50:45 2018 -0700
+++ b/tests/test-evolve-obshistory-complex.t	Mon Mar 12 15:50:59 2018 -0700
@@ -78,11 +78,11 @@
   @    100cc25b765f (9) fold2
   |\
   x |  0da815c333f6 (5) E
-   /     rewritten(description, content) as 100cc25b765f by test (Thu Jan 01 00:00:00 1970 +0000)
+   /     rewritten(description, content) as 100cc25b765f using fold by test (Thu Jan 01 00:00:00 1970 +0000)
   |        note: folding changesets to test
   |
   x  d9f908fde1a1 (6) F
-       rewritten(description, parent, content) as 100cc25b765f by test (Thu Jan 01 00:00:00 1970 +0000)
+       rewritten(description, parent, content) as 100cc25b765f using fold by test (Thu Jan 01 00:00:00 1970 +0000)
          note: folding changesets to test
   
   $ hg log -G 
@@ -110,25 +110,25 @@
   x | |  changeset:   4:868d2e0eb19c
   | | |  user:        test
   | | |  date:        Thu Jan 01 00:00:00 1970 +0000
-  | | |  obsolete:    rewritten as 8:d15d0ffc75f6
+  | | |  obsolete:    rewritten using fold as 8:d15d0ffc75f6
   | | |  summary:     D
   | | |
   x | |  changeset:   3:a8df460dbbfe
   |/ /   user:        test
   | |    date:        Thu Jan 01 00:00:00 1970 +0000
-  | |    obsolete:    rewritten as 8:d15d0ffc75f6
+  | |    obsolete:    rewritten using fold as 8:d15d0ffc75f6
   | |    summary:     C
   | |
   x |  changeset:   2:c473644ee0e9
   | |  user:        test
   | |  date:        Thu Jan 01 00:00:00 1970 +0000
-  | |  obsolete:    rewritten as 7:b868bc49b0a4
+  | |  obsolete:    rewritten using fold as 7:b868bc49b0a4
   | |  summary:     B
   | |
   x |  changeset:   1:2a34000d3544
   |/   user:        test
   |    date:        Thu Jan 01 00:00:00 1970 +0000
-  |    obsolete:    rewritten as 7:b868bc49b0a4
+  |    obsolete:    rewritten using fold as 7:b868bc49b0a4
   |    summary:     A
   |
   o  changeset:   0:ea207398892e
@@ -286,25 +286,25 @@
   x | |  changeset:   4:868d2e0eb19c
   | | |  user:        test
   | | |  date:        Thu Jan 01 00:00:00 1970 +0000
-  | | |  obsolete:    split as 12:7b3290f6e0a0, 13:d0f33db50670
+  | | |  obsolete:    split using fold as 12:7b3290f6e0a0, 13:d0f33db50670
   | | |  summary:     D
   | | |
   x | |  changeset:   3:a8df460dbbfe
   |/ /   user:        test
   | |    date:        Thu Jan 01 00:00:00 1970 +0000
-  | |    obsolete:    split as 12:7b3290f6e0a0, 13:d0f33db50670
+  | |    obsolete:    split using fold as 12:7b3290f6e0a0, 13:d0f33db50670
   | |    summary:     C
   | |
   x |  changeset:   2:c473644ee0e9
   | |  user:        test
   | |  date:        Thu Jan 01 00:00:00 1970 +0000
-  | |  obsolete:    split as 10:19e14c8397fc, 11:e036916b63ea
+  | |  obsolete:    split using fold as 10:19e14c8397fc, 11:e036916b63ea
   | |  summary:     B
   | |
   x |  changeset:   1:2a34000d3544
   |/   user:        test
   |    date:        Thu Jan 01 00:00:00 1970 +0000
-  |    obsolete:    split as 10:19e14c8397fc, 11:e036916b63ea
+  |    obsolete:    split using fold as 10:19e14c8397fc, 11:e036916b63ea
   |    summary:     A
   |
   o  changeset:   0:ea207398892e
@@ -351,25 +351,25 @@
   x | |  changeset:   4:868d2e0eb19c
   | | |  user:        test
   | | |  date:        Thu Jan 01 00:00:00 1970 +0000
-  | | |  obsolete:    split as 12:7b3290f6e0a0, 14:ec31316faa9d
+  | | |  obsolete:    split using fold as 12:7b3290f6e0a0, 14:ec31316faa9d
   | | |  summary:     D
   | | |
   x | |  changeset:   3:a8df460dbbfe
   |/ /   user:        test
   | |    date:        Thu Jan 01 00:00:00 1970 +0000
-  | |    obsolete:    split as 12:7b3290f6e0a0, 14:ec31316faa9d
+  | |    obsolete:    split using fold as 12:7b3290f6e0a0, 14:ec31316faa9d
   | |    summary:     C
   | |
   x |  changeset:   2:c473644ee0e9
   | |  user:        test
   | |  date:        Thu Jan 01 00:00:00 1970 +0000
-  | |  obsolete:    split as 10:19e14c8397fc, 12:7b3290f6e0a0
+  | |  obsolete:    split using fold as 10:19e14c8397fc, 12:7b3290f6e0a0
   | |  summary:     B
   | |
   x |  changeset:   1:2a34000d3544
   |/   user:        test
   |    date:        Thu Jan 01 00:00:00 1970 +0000
-  |    obsolete:    split as 10:19e14c8397fc, 12:7b3290f6e0a0
+  |    obsolete:    split using fold as 10:19e14c8397fc, 12:7b3290f6e0a0
   |    summary:     A
   |
   o  changeset:   0:ea207398892e
@@ -393,19 +393,19 @@
   | | |    rewritten(description, parent, content) as 7b3290f6e0a0 by test (Thu Jan 01 00:00:00 1970 +0000)
   | | |
   x | |  868d2e0eb19c (4) D
-   / /     rewritten(description, parent, content) as d15d0ffc75f6 by test (Thu Jan 01 00:00:00 1970 +0000)
+   / /     rewritten(description, parent, content) as d15d0ffc75f6 using fold by test (Thu Jan 01 00:00:00 1970 +0000)
   | |
   x |  a8df460dbbfe (3) C
-   /     rewritten(description, content) as d15d0ffc75f6 by test (Thu Jan 01 00:00:00 1970 +0000)
+   /     rewritten(description, content) as d15d0ffc75f6 using fold by test (Thu Jan 01 00:00:00 1970 +0000)
   |
   x    b868bc49b0a4 (7) fold0
   |\     rewritten(parent, content) as 19e14c8397fc, e036916b63ea by test (Thu Jan 01 00:00:00 1970 +0000)
   | |
   x |  2a34000d3544 (1) A
-   /     rewritten(description, content) as b868bc49b0a4 by test (Thu Jan 01 00:00:00 1970 +0000)
+   /     rewritten(description, content) as b868bc49b0a4 using fold by test (Thu Jan 01 00:00:00 1970 +0000)
   |
   x  c473644ee0e9 (2) B
-       rewritten(description, parent, content) as b868bc49b0a4 by test (Thu Jan 01 00:00:00 1970 +0000)
+       rewritten(description, parent, content) as b868bc49b0a4 using fold by test (Thu Jan 01 00:00:00 1970 +0000)
   
 While with all option, we should see 15 changesets
 
@@ -429,7 +429,7 @@
   | |  / /     rewritten(description, parent, content) as 7b3290f6e0a0 by test (Thu Jan 01 00:00:00 1970 +0000)
   | | | |
   | | x |  0da815c333f6 (5) E
-  | |  /     rewritten(description, content) as 100cc25b765f by test (Thu Jan 01 00:00:00 1970 +0000)
+  | |  /     rewritten(description, content) as 100cc25b765f using fold by test (Thu Jan 01 00:00:00 1970 +0000)
   | | |        note: folding changesets to test
   | | |
   x | |    b868bc49b0a4 (7) fold0
@@ -439,18 +439,18 @@
   | | |\ \     rewritten(parent, content) as 7b3290f6e0a0, d0f33db50670 by test (Thu Jan 01 00:00:00 1970 +0000)
   | | | | |
   | | | | x  d9f908fde1a1 (6) F
-  | | | |      rewritten(description, parent, content) as 100cc25b765f by test (Thu Jan 01 00:00:00 1970 +0000)
+  | | | |      rewritten(description, parent, content) as 100cc25b765f using fold by test (Thu Jan 01 00:00:00 1970 +0000)
   | | | |        note: folding changesets to test
   | | | |
   x | | |  2a34000d3544 (1) A
-   / / /     rewritten(description, content) as b868bc49b0a4 by test (Thu Jan 01 00:00:00 1970 +0000)
+   / / /     rewritten(description, content) as b868bc49b0a4 using fold by test (Thu Jan 01 00:00:00 1970 +0000)
   | | |
   | x |  868d2e0eb19c (4) D
-  |  /     rewritten(description, parent, content) as d15d0ffc75f6 by test (Thu Jan 01 00:00:00 1970 +0000)
+  |  /     rewritten(description, parent, content) as d15d0ffc75f6 using fold by test (Thu Jan 01 00:00:00 1970 +0000)
   | |
   | x  a8df460dbbfe (3) C
-  |      rewritten(description, content) as d15d0ffc75f6 by test (Thu Jan 01 00:00:00 1970 +0000)
+  |      rewritten(description, content) as d15d0ffc75f6 using fold by test (Thu Jan 01 00:00:00 1970 +0000)
   |
   x  c473644ee0e9 (2) B
-       rewritten(description, parent, content) as b868bc49b0a4 by test (Thu Jan 01 00:00:00 1970 +0000)
+       rewritten(description, parent, content) as b868bc49b0a4 using fold by test (Thu Jan 01 00:00:00 1970 +0000)
   
--- a/tests/test-evolve-obshistory.t	Mon Mar 12 15:50:45 2018 -0700
+++ b/tests/test-evolve-obshistory.t	Mon Mar 12 15:50:59 2018 -0700
@@ -832,13 +832,13 @@
   | x  changeset:   2:0dec01379d3b
   | |  user:        test
   | |  date:        Thu Jan 01 00:00:00 1970 +0000
-  | |  obsolete:    rewritten as 3:eb5a0daa2192
+  | |  obsolete:    rewritten using fold as 3:eb5a0daa2192
   | |  summary:     B0
   | |
   | x  changeset:   1:471f378eab4c
   |/   user:        test
   |    date:        Thu Jan 01 00:00:00 1970 +0000
-  |    obsolete:    rewritten as 3:eb5a0daa2192
+  |    obsolete:    rewritten using fold as 3:eb5a0daa2192
   |    summary:     A0
   |
   o  changeset:   0:ea207398892e
@@ -853,7 +853,7 @@
 the revision with the target
   $ hg obslog --hidden 471f378eab4c --patch
   x  471f378eab4c (1) A0
-       rewritten(description, content) as eb5a0daa2192 by test (Thu Jan 01 00:00:00 1970 +0000)
+       rewritten(description, content) as eb5a0daa2192 using fold by test (Thu Jan 01 00:00:00 1970 +0000)
          diff -r 471f378eab4c -r eb5a0daa2192 changeset-description
          --- a/changeset-description
          +++ b/changeset-description
@@ -873,11 +873,11 @@
   @    eb5a0daa2192 (3) C0
   |\
   x |  0dec01379d3b (2) B0
-   /     rewritten(description, parent, content) as eb5a0daa2192 by test (Thu Jan 01 00:00:00 1970 +0000)
+   /     rewritten(description, parent, content) as eb5a0daa2192 using fold by test (Thu Jan 01 00:00:00 1970 +0000)
   |        (No patch available, changesets rebased)
   |
   x  471f378eab4c (1) A0
-       rewritten(description, content) as eb5a0daa2192 by test (Thu Jan 01 00:00:00 1970 +0000)
+       rewritten(description, content) as eb5a0daa2192 using fold by test (Thu Jan 01 00:00:00 1970 +0000)
          diff -r 471f378eab4c -r eb5a0daa2192 changeset-description
          --- a/changeset-description
          +++ b/changeset-description
@@ -896,7 +896,7 @@
 the revision with the target
   $ hg obslog --hidden 0dec01379d3b --patch
   x  0dec01379d3b (2) B0
-       rewritten(description, parent, content) as eb5a0daa2192 by test (Thu Jan 01 00:00:00 1970 +0000)
+       rewritten(description, parent, content) as eb5a0daa2192 using fold by test (Thu Jan 01 00:00:00 1970 +0000)
          (No patch available, changesets rebased)
   
 Check that with all option, all changesets are shown
@@ -904,11 +904,11 @@
   @    eb5a0daa2192 (3) C0
   |\
   x |  0dec01379d3b (2) B0
-   /     rewritten(description, parent, content) as eb5a0daa2192 by test (Thu Jan 01 00:00:00 1970 +0000)
+   /     rewritten(description, parent, content) as eb5a0daa2192 using fold by test (Thu Jan 01 00:00:00 1970 +0000)
   |        (No patch available, changesets rebased)
   |
   x  471f378eab4c (1) A0
-       rewritten(description, content) as eb5a0daa2192 by test (Thu Jan 01 00:00:00 1970 +0000)
+       rewritten(description, content) as eb5a0daa2192 using fold by test (Thu Jan 01 00:00:00 1970 +0000)
          diff -r 471f378eab4c -r eb5a0daa2192 changeset-description
          --- a/changeset-description
          +++ b/changeset-description
@@ -929,11 +929,11 @@
   @    eb5a0daa2192 (3) C0
   |\
   x |  0dec01379d3b (2) B0
-   /     rewritten(description, parent, content) as eb5a0daa2192 by test (Thu Jan 01 00:00:00 1970 +0000)
+   /     rewritten(description, parent, content) as eb5a0daa2192 using fold by test (Thu Jan 01 00:00:00 1970 +0000)
   |        (No patch available, changesets rebased)
   |
   x  471f378eab4c (1) A0
-       rewritten(description, content) as eb5a0daa2192 by test (Thu Jan 01 00:00:00 1970 +0000)
+       rewritten(description, content) as eb5a0daa2192 using fold by test (Thu Jan 01 00:00:00 1970 +0000)
          diff -r 471f378eab4c -r eb5a0daa2192 changeset-description
          --- a/changeset-description
          +++ b/changeset-description
@@ -967,6 +967,7 @@
                       "description",
                       "content"
                   ],
+                  "operation": "fold",
                   "succnodes": [
                       "eb5a0daa2192"
                   ],
@@ -990,6 +991,7 @@
                       "parent",
                       "content"
                   ],
+                  "operation": "fold",
                   "succnodes": [
                       "eb5a0daa2192"
                   ],
@@ -1411,7 +1413,7 @@
   | |  parent:      1:471f378eab4c
   | |  user:        test
   | |  date:        Thu Jan 01 00:00:00 1970 +0000
-  | |  obsolete:    rewritten as 4:eb5a0daa2192
+  | |  obsolete:    rewritten using fold as 4:eb5a0daa2192
   | |  summary:     B1
   | |
   | | x  changeset:   2:0dec01379d3b
@@ -1423,7 +1425,7 @@
   | x  changeset:   1:471f378eab4c
   |/   user:        test
   |    date:        Thu Jan 01 00:00:00 1970 +0000
-  |    obsolete:    rewritten as 4:eb5a0daa2192
+  |    obsolete:    rewritten using fold as 4:eb5a0daa2192
   |    summary:     A0
   |
   o  changeset:   0:ea207398892e
@@ -1439,7 +1441,7 @@
   @    eb5a0daa2192 (4) C0
   |\
   x |  471f378eab4c (1) A0
-   /     rewritten(description, content) as eb5a0daa2192 by test (Thu Jan 01 00:00:00 1970 +0000)
+   /     rewritten(description, content) as eb5a0daa2192 using fold by test (Thu Jan 01 00:00:00 1970 +0000)
   |        diff -r 471f378eab4c -r eb5a0daa2192 changeset-description
   |        --- a/changeset-description
   |        +++ b/changeset-description
@@ -1455,7 +1457,7 @@
   |
   |
   x  b7ea6d14e664 (3) B1
-  |    rewritten(description, parent, content) as eb5a0daa2192 by test (Thu Jan 01 00:00:00 1970 +0000)
+  |    rewritten(description, parent, content) as eb5a0daa2192 using fold by test (Thu Jan 01 00:00:00 1970 +0000)
   |      (No patch available, changesets rebased)
   |
   x  0dec01379d3b (2) B0
@@ -1473,7 +1475,7 @@
   @    eb5a0daa2192 (4) C0
   |\
   x |  471f378eab4c (1) A0
-   /     rewritten(description, content) as eb5a0daa2192 by test (Thu Jan 01 00:00:00 1970 +0000)
+   /     rewritten(description, content) as eb5a0daa2192 using fold by test (Thu Jan 01 00:00:00 1970 +0000)
   |        diff -r 471f378eab4c -r eb5a0daa2192 changeset-description
   |        --- a/changeset-description
   |        +++ b/changeset-description
@@ -1489,7 +1491,7 @@
   |
   |
   x  b7ea6d14e664 (3) B1
-  |    rewritten(description, parent, content) as eb5a0daa2192 by test (Thu Jan 01 00:00:00 1970 +0000)
+  |    rewritten(description, parent, content) as eb5a0daa2192 using fold by test (Thu Jan 01 00:00:00 1970 +0000)
   |      (No patch available, changesets rebased)
   |
   x  0dec01379d3b (2) B0
@@ -1522,6 +1524,7 @@
                       *, (glob)
                       "content"
                   ],
+                  "operation": "fold",
                   "succnodes": [
                       "eb5a0daa2192"
                   ],
@@ -1566,6 +1569,7 @@
                       "description",
                       "content"
                   ],
+                  "operation": "fold",
                   "succnodes": [
                       "eb5a0daa2192"
                   ],
--- a/tests/test-evolve-templates.t	Mon Mar 12 15:50:45 2018 -0700
+++ b/tests/test-evolve-templates.t	Mon Mar 12 15:50:59 2018 -0700
@@ -466,13 +466,13 @@
   | x  changeset:   2:0dec01379d3b
   | |  user:        test
   | |  date:        Thu Jan 01 00:00:00 1970 +0000
-  | |  obsolete:    rewritten as 3:eb5a0daa2192
+  | |  obsolete:    rewritten using fold as 3:eb5a0daa2192
   | |  summary:     B0
   | |
   | x  changeset:   1:471f378eab4c
   |/   user:        test
   |    date:        Thu Jan 01 00:00:00 1970 +0000
-  |    obsolete:    rewritten as 3:eb5a0daa2192
+  |    obsolete:    rewritten using fold as 3:eb5a0daa2192
   |    summary:     A0
   |
   o  changeset:   0:ea207398892e
@@ -498,7 +498,7 @@
   | @  471f378eab4c
   |/     Successors: 3:eb5a0daa2192
   |      semi-colon: 3:eb5a0daa2192
-  |      Fate: rewritten as 3:eb5a0daa2192
+  |      Fate: rewritten using fold as 3:eb5a0daa2192
   |
   o  ea207398892e
   
@@ -506,7 +506,7 @@
   o  eb5a0daa2192
   |
   | @  471f378eab4c
-  |/     Obsfate: rewritten as 3:eb5a0daa2192
+  |/     Obsfate: rewritten using fold as 3:eb5a0daa2192
   |
   o  ea207398892e
   
@@ -526,12 +526,12 @@
   | @  0dec01379d3b
   | |    Successors: 3:eb5a0daa2192
   | |    semi-colon: 3:eb5a0daa2192
-  | |    Fate: rewritten as 3:eb5a0daa2192
+  | |    Fate: rewritten using fold as 3:eb5a0daa2192
   | |
   | x  471f378eab4c
   |/     Successors: 3:eb5a0daa2192
   |      semi-colon: 3:eb5a0daa2192
-  |      Fate: rewritten as 3:eb5a0daa2192
+  |      Fate: rewritten using fold as 3:eb5a0daa2192
   |
   o  ea207398892e
   
@@ -539,10 +539,10 @@
   o  eb5a0daa2192
   |
   | @  0dec01379d3b
-  | |    Obsfate: rewritten as 3:eb5a0daa2192
+  | |    Obsfate: rewritten using fold as 3:eb5a0daa2192
   | |
   | x  471f378eab4c
-  |/     Obsfate: rewritten as 3:eb5a0daa2192
+  |/     Obsfate: rewritten using fold as 3:eb5a0daa2192
   |
   o  ea207398892e
   
@@ -566,12 +566,12 @@
   | x  0dec01379d3b
   | |    Successors: 3:eb5a0daa2192
   | |    semi-colon: 3:eb5a0daa2192
-  | |    Fate: rewritten as 3:eb5a0daa2192
+  | |    Fate: rewritten using fold as 3:eb5a0daa2192
   | |
   | x  471f378eab4c
   |/     Successors: 3:eb5a0daa2192
   |      semi-colon: 3:eb5a0daa2192
-  |      Fate: rewritten as 3:eb5a0daa2192
+  |      Fate: rewritten using fold as 3:eb5a0daa2192
   |
   o  ea207398892e
   
@@ -579,10 +579,10 @@
   @  eb5a0daa2192
   |
   | x  0dec01379d3b
-  | |    Obsfate: rewritten as 3:eb5a0daa2192
+  | |    Obsfate: rewritten using fold as 3:eb5a0daa2192
   | |
   | x  471f378eab4c
-  |/     Obsfate: rewritten as 3:eb5a0daa2192
+  |/     Obsfate: rewritten using fold as 3:eb5a0daa2192
   |
   o  ea207398892e
   
@@ -590,9 +590,9 @@
   $ hg fatelogjson --hidden
   @  eb5a0daa2192 []
   |
-  | x  0dec01379d3b [{"markers": [["0dec01379d3be6318c470ead31b1fe7ae7cb53d5", ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], 0, [["ef1", "13"], ["user", "test"]], [0.0, 0], null]], "max_date": [0.0, 0], "min_date": [0.0, 0], "successors": ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], "users": ["test"], "verb": "rewritten"}]
+  | x  0dec01379d3b [{"markers": [["0dec01379d3be6318c470ead31b1fe7ae7cb53d5", ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], 0, [["ef1", "13"], ["operation", "fold"], ["user", "test"]], [0.0, 0], null]], "max_date": [0.0, 0], "min_date": [0.0, 0], "successors": ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], "users": ["test"], "verb": "rewritten"}]
   | |
-  | x  471f378eab4c [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], 0, [["ef1", "9"], ["user", "test"]], [0.0, 0], null]], "max_date": [0.0, 0], "min_date": [0.0, 0], "successors": ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], "users": ["test"], "verb": "rewritten"}]
+  | x  471f378eab4c [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], 0, [["ef1", "9"], ["operation", "fold"], ["user", "test"]], [0.0, 0], null]], "max_date": [0.0, 0], "min_date": [0.0, 0], "successors": ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], "users": ["test"], "verb": "rewritten"}]
   |/
   o  ea207398892e []
   
@@ -821,7 +821,7 @@
   | |  parent:      1:471f378eab4c
   | |  user:        test
   | |  date:        Thu Jan 01 00:00:00 1970 +0000
-  | |  obsolete:    rewritten as 4:eb5a0daa2192
+  | |  obsolete:    rewritten using fold as 4:eb5a0daa2192
   | |  summary:     B1
   | |
   | | x  changeset:   2:0dec01379d3b
@@ -833,7 +833,7 @@
   | x  changeset:   1:471f378eab4c
   |/   user:        test
   |    date:        Thu Jan 01 00:00:00 1970 +0000
-  |    obsolete:    rewritten as 4:eb5a0daa2192
+  |    obsolete:    rewritten using fold as 4:eb5a0daa2192
   |    summary:     A0
   |
   o  changeset:   0:ea207398892e
@@ -857,7 +857,7 @@
   | @  471f378eab4c
   |/     Successors: 4:eb5a0daa2192
   |      semi-colon: 4:eb5a0daa2192
-  |      Fate: rewritten as 4:eb5a0daa2192
+  |      Fate: rewritten using fold as 4:eb5a0daa2192
   |
   o  ea207398892e
   
@@ -865,7 +865,7 @@
   o  eb5a0daa2192
   |
   | @  471f378eab4c
-  |/     Obsfate: rewritten as 4:eb5a0daa2192
+  |/     Obsfate: rewritten using fold as 4:eb5a0daa2192
   |
   o  ea207398892e
   
@@ -882,12 +882,12 @@
   | @  0dec01379d3b
   | |    Successors: 4:eb5a0daa2192
   | |    semi-colon: 4:eb5a0daa2192
-  | |    Fate: rewritten using amend as 4:eb5a0daa2192
+  | |    Fate: rewritten using amend, fold as 4:eb5a0daa2192
   | |
   | x  471f378eab4c
   |/     Successors: 4:eb5a0daa2192
   |      semi-colon: 4:eb5a0daa2192
-  |      Fate: rewritten as 4:eb5a0daa2192
+  |      Fate: rewritten using fold as 4:eb5a0daa2192
   |
   o  ea207398892e
   
@@ -895,10 +895,10 @@
   o  eb5a0daa2192
   |
   | @  0dec01379d3b
-  | |    Obsfate: rewritten using amend as 4:eb5a0daa2192
+  | |    Obsfate: rewritten using amend, fold as 4:eb5a0daa2192
   | |
   | x  471f378eab4c
-  |/     Obsfate: rewritten as 4:eb5a0daa2192
+  |/     Obsfate: rewritten using fold as 4:eb5a0daa2192
   |
   o  ea207398892e
   
@@ -916,12 +916,12 @@
   | @  b7ea6d14e664
   | |    Successors: 4:eb5a0daa2192
   | |    semi-colon: 4:eb5a0daa2192
-  | |    Fate: rewritten as 4:eb5a0daa2192
+  | |    Fate: rewritten using fold as 4:eb5a0daa2192
   | |
   | x  471f378eab4c
   |/     Successors: 4:eb5a0daa2192
   |      semi-colon: 4:eb5a0daa2192
-  |      Fate: rewritten as 4:eb5a0daa2192
+  |      Fate: rewritten using fold as 4:eb5a0daa2192
   |
   o  ea207398892e
   
@@ -929,10 +929,10 @@
   o  eb5a0daa2192
   |
   | @  b7ea6d14e664
-  | |    Obsfate: rewritten as 4:eb5a0daa2192
+  | |    Obsfate: rewritten using fold as 4:eb5a0daa2192
   | |
   | x  471f378eab4c
-  |/     Obsfate: rewritten as 4:eb5a0daa2192
+  |/     Obsfate: rewritten using fold as 4:eb5a0daa2192
   |
   o  ea207398892e
   
@@ -953,7 +953,7 @@
   | |    semi-colon: 2:0dec01379d3b
   | |    Successors: 4:eb5a0daa2192
   | |    semi-colon: 4:eb5a0daa2192
-  | |    Fate: rewritten as 4:eb5a0daa2192
+  | |    Fate: rewritten using fold as 4:eb5a0daa2192
   | |
   | | x  0dec01379d3b
   | |/     Successors: 3:b7ea6d14e664
@@ -963,7 +963,7 @@
   | x  471f378eab4c
   |/     Successors: 4:eb5a0daa2192
   |      semi-colon: 4:eb5a0daa2192
-  |      Fate: rewritten as 4:eb5a0daa2192
+  |      Fate: rewritten using fold as 4:eb5a0daa2192
   |
   o  ea207398892e
   
@@ -971,24 +971,24 @@
   @  eb5a0daa2192
   |
   | x  b7ea6d14e664
-  | |    Obsfate: rewritten as 4:eb5a0daa2192
+  | |    Obsfate: rewritten using fold as 4:eb5a0daa2192
   | |
   | | x  0dec01379d3b
   | |/     Obsfate: reworded using amend as 3:b7ea6d14e664
   | |
   | x  471f378eab4c
-  |/     Obsfate: rewritten as 4:eb5a0daa2192
+  |/     Obsfate: rewritten using fold as 4:eb5a0daa2192
   |
   o  ea207398892e
   
   $ hg fatelogjson --hidden
   @  eb5a0daa2192 []
   |
-  | x  b7ea6d14e664 [{"markers": [["b7ea6d14e664bdc8922221f7992631b50da3fb07", ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], 0, [["ef1", "13"], ["user", "test"]], [0.0, 0], null]], "max_date": [0.0, 0], "min_date": [0.0, 0], "successors": ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], "users": ["test"], "verb": "rewritten"}]
+  | x  b7ea6d14e664 [{"markers": [["b7ea6d14e664bdc8922221f7992631b50da3fb07", ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], 0, [["ef1", "13"], ["operation", "fold"], ["user", "test"]], [0.0, 0], null]], "max_date": [0.0, 0], "min_date": [0.0, 0], "successors": ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], "users": ["test"], "verb": "rewritten"}]
   | |
   | | x  0dec01379d3b [{"markers": [["0dec01379d3be6318c470ead31b1fe7ae7cb53d5", ["b7ea6d14e664bdc8922221f7992631b50da3fb07"], 0, [["ef1", "1"], ["operation", "amend"], ["user", "test"]], [0.0, 0], null]], "max_date": [0.0, 0], "min_date": [0.0, 0], "successors": ["b7ea6d14e664bdc8922221f7992631b50da3fb07"], "users": ["test"], "verb": "reworded"}]
   | |/
-  | x  471f378eab4c [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], 0, [["ef1", "9"], ["user", "test"]], [0.0, 0], null]], "max_date": [0.0, 0], "min_date": [0.0, 0], "successors": ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], "users": ["test"], "verb": "rewritten"}]
+  | x  471f378eab4c [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], 0, [["ef1", "9"], ["operation", "fold"], ["user", "test"]], [0.0, 0], null]], "max_date": [0.0, 0], "min_date": [0.0, 0], "successors": ["eb5a0daa21923bbf8caeb2c42085b9e463861fd0"], "users": ["test"], "verb": "rewritten"}]
   |/
   o  ea207398892e []
   
--- a/tests/test-evolve.t	Mon Mar 12 15:50:45 2018 -0700
+++ b/tests/test-evolve.t	Mon Mar 12 15:50:59 2018 -0700
@@ -766,12 +766,12 @@
   @    d26d339c513f (12) add 4
   |\
   x |    af636757ce3b (11) add 3
-  |\ \     rewritten(description, user, parent, content) as d26d339c513f by test (Thu Jan 01 00:00:00 1970 +0000)
+  |\ \     rewritten(description, user, parent, content) as d26d339c513f using fold by test (Thu Jan 01 00:00:00 1970 +0000)
   | | |
   | \ \
   | |\ \
   | | | x  ce341209337f (4) add 4
-  | | |      rewritten(description, user, content) as d26d339c513f by test (Thu Jan 01 00:00:00 1970 +0000)
+  | | |      rewritten(description, user, content) as d26d339c513f using fold by test (Thu Jan 01 00:00:00 1970 +0000)
   | | |
 
 Test obsstore stat
@@ -786,14 +786,14 @@
       more than 2 successors:         0
       available  keys:
                   ef1:               10
-            operation:                3
+            operation:                8
                  user:               10
   marker size:
       format v1:
           smallest length:           75
           longer length:             92
-          median length:             76
-          mean length:               80
+          median length:             91
+          mean length:               87
       format v0:
           smallest length:           * (glob)
           longer length:             * (glob)
--- a/tests/test-uncommit.t	Mon Mar 12 15:50:45 2018 -0700
+++ b/tests/test-uncommit.t	Mon Mar 12 15:50:59 2018 -0700
@@ -233,7 +233,7 @@
      touncommit-bm-inactive    4:e8db4aa611f6
      unrelated                 2:f63b90038565
   $ hg debugobsolete
-  5eb72dbe0cb409d094e3b4ae8eaa30071c1b8730 e8db4aa611f6d5706374288e6898e498f5c44098 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'user': 'test'}
+  5eb72dbe0cb409d094e3b4ae8eaa30071c1b8730 e8db4aa611f6d5706374288e6898e498f5c44098 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'uncommit', 'user': 'test'}
 
 Test phase is preserved, no local changes
 
@@ -281,8 +281,8 @@
   o  0:07f494440405@default(draft) adda
   
   $ hg debugobsolete
-  5eb72dbe0cb409d094e3b4ae8eaa30071c1b8730 e8db4aa611f6d5706374288e6898e498f5c44098 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'user': 'test'}
-  5eb72dbe0cb409d094e3b4ae8eaa30071c1b8730 a1d4c1ad76cc7eb5e8a36ef52396da334b6d59c5 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'user': 'test'}
+  5eb72dbe0cb409d094e3b4ae8eaa30071c1b8730 e8db4aa611f6d5706374288e6898e498f5c44098 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'uncommit', 'user': 'test'}
+  5eb72dbe0cb409d094e3b4ae8eaa30071c1b8730 a1d4c1ad76cc7eb5e8a36ef52396da334b6d59c5 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'uncommit', 'user': 'test'}
 
 Test --all
 
@@ -317,9 +317,9 @@
   A e
 
   $ hg debugobsolete
-  5eb72dbe0cb409d094e3b4ae8eaa30071c1b8730 e8db4aa611f6d5706374288e6898e498f5c44098 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'user': 'test'}
-  5eb72dbe0cb409d094e3b4ae8eaa30071c1b8730 a1d4c1ad76cc7eb5e8a36ef52396da334b6d59c5 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'user': 'test'}
-  5eb72dbe0cb409d094e3b4ae8eaa30071c1b8730 c4cbebac3751269bdf12d1466deabcc78521d272 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'user': 'test'}
+  5eb72dbe0cb409d094e3b4ae8eaa30071c1b8730 e8db4aa611f6d5706374288e6898e498f5c44098 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'uncommit', 'user': 'test'}
+  5eb72dbe0cb409d094e3b4ae8eaa30071c1b8730 a1d4c1ad76cc7eb5e8a36ef52396da334b6d59c5 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'uncommit', 'user': 'test'}
+  5eb72dbe0cb409d094e3b4ae8eaa30071c1b8730 c4cbebac3751269bdf12d1466deabcc78521d272 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'uncommit', 'user': 'test'}
 
 Display a warning if nothing left
 
@@ -327,10 +327,10 @@
   new changeset is empty
   (use 'hg prune .' to remove it)
   $ hg debugobsolete
-  5eb72dbe0cb409d094e3b4ae8eaa30071c1b8730 e8db4aa611f6d5706374288e6898e498f5c44098 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'user': 'test'}
-  5eb72dbe0cb409d094e3b4ae8eaa30071c1b8730 a1d4c1ad76cc7eb5e8a36ef52396da334b6d59c5 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'user': 'test'}
-  5eb72dbe0cb409d094e3b4ae8eaa30071c1b8730 c4cbebac3751269bdf12d1466deabcc78521d272 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'user': 'test'}
-  c4cbebac3751269bdf12d1466deabcc78521d272 4f1c269eab68720f54e88ce3c1dc02b2858b6b89 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'user': 'test'}
+  5eb72dbe0cb409d094e3b4ae8eaa30071c1b8730 e8db4aa611f6d5706374288e6898e498f5c44098 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'uncommit', 'user': 'test'}
+  5eb72dbe0cb409d094e3b4ae8eaa30071c1b8730 a1d4c1ad76cc7eb5e8a36ef52396da334b6d59c5 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'uncommit', 'user': 'test'}
+  5eb72dbe0cb409d094e3b4ae8eaa30071c1b8730 c4cbebac3751269bdf12d1466deabcc78521d272 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'uncommit', 'user': 'test'}
+  c4cbebac3751269bdf12d1466deabcc78521d272 4f1c269eab68720f54e88ce3c1dc02b2858b6b89 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'uncommit', 'user': 'test'}
 
 Test instability warning