metaedit: actually track folds using fold-* metadata in obsmarkers
authorAnton Shestakov <av6@dwimlabs.net>
Sat, 11 Jan 2020 19:53:11 +0700
changeset 5114 08112f100d70
parent 5113 a66c9fc9c503
child 5115 f44cc9abf21c
metaedit: actually track folds using fold-* metadata in obsmarkers
hgext3rd/evolve/cmdrewrite.py
tests/test-metaedit.t
--- a/hgext3rd/evolve/cmdrewrite.py	Sat Jan 11 19:52:56 2020 +0700
+++ b/hgext3rd/evolve/cmdrewrite.py	Sat Jan 11 19:53:11 2020 +0700
@@ -936,9 +936,13 @@
                     metadata[b'note'] = opts['note']
 
                 phases.retractboundary(repo, tr, targetphase, [newid])
-                obsolete.createmarkers(repo, [(ctx, (repo[newid],))
-                                              for ctx in allctx],
-                                       metadata=metadata, operation=b"metaedit")
+                if 'predecessors' in obsolete.createmarkers.__code__.co_varnames:
+                    obsolete.createmarkers(repo, [(tuple(allctx), (repo[newid],))],
+                                           metadata=metadata, operation=b"metaedit")
+                else:
+                    # hg <= 4.7 (6335c0de80fa)
+                    obsolete.createmarkers(repo, [(ctx, (repo[newid],)) for ctx in allctx],
+                                           metadata=metadata, operation=b"metaedit")
             else:
                 ui.status(_(b"nothing changed\n"))
             tr.close()
--- a/tests/test-metaedit.t	Sat Jan 11 19:52:56 2020 +0700
+++ b/tests/test-metaedit.t	Sat Jan 11 19:53:11 2020 +0700
@@ -146,6 +146,9 @@
   x  587528abfffe (7) F
        rewritten(user) as 212b2a2b87cd using metaedit by test (Thu Jan 01 00:00:00 1970 +0000)
   
+  $ hg debugobsolete --rev . --exclusive
+  212b2a2b87cdbae992f001e9baba64db389fbce7 a08d35fd7d9d0f8cb33d5bd2074e9bafb5cbc70f 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '29', 'fold-id': 'c5832a81', 'fold-idx': '2', 'fold-size': '2', 'note': 'folding changesets using metaedit', 'operation': 'metaedit', 'user': 'test'}
+  c2bd843aa2468b30bb56d69d4f5fef95b85986f2 a08d35fd7d9d0f8cb33d5bd2074e9bafb5cbc70f 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '9', 'fold-id': 'c5832a81', 'fold-idx': '1', 'fold-size': '2', 'note': 'folding changesets using metaedit', 'operation': 'metaedit', 'user': 'test'}
 
 no new commit is created here because the date is the same
   $ HGEDITOR=cat hg metaedit
@@ -205,6 +208,8 @@
   1 changesets folded
   $ hg log -r "tip" --template '{rev}: {author}\n'
   12: foobar3
+  $ hg debugobsolete --rev 'tip' --exclusive
+  f3d001339afd30d27fcd91e713274a78233528c8 07a6525ddaf5de1ab33352806abb5724a0954f3f 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '16', 'operation': 'metaedit', 'user': 'foobar3'}
 
 working on merge commits too