diff -r 4fd0db2f6d84 -r 474db2d60202 tests/test-evolve.t --- a/tests/test-evolve.t Mon Apr 25 16:24:42 2016 -0700 +++ b/tests/test-evolve.t Mon Apr 25 16:24:42 2016 -0700 @@ -1468,11 +1468,26 @@ $ hg metaedit -r 0 abort: cannot edit commit information for public revisions [255] + $ hg metaedit --fold + abort: revisions must be specified with --fold + [255] + $ hg metaedit -r 0 --fold + abort: cannot fold public revisions + [255] + $ hg metaedit '36 + 42' --fold + abort: cannot fold non-linear revisions (multiple roots given) + [255] + $ hg metaedit '36::39 + 41' --fold + abort: cannot fold non-linear revisions (multiple heads given) + [255] check that metaedit respects allowunstable $ hg metaedit '.^' --config 'experimental.evolution=createmarkers, allnewcommands' abort: cannot edit commit information in the middle of a stack (c904da5245b0 will be affected) [255] + $ hg metaedit '18::20' --fold --config 'experimental.evolution=createmarkers, allnewcommands' + abort: cannot fold chain not ending with a head or with branching + [255] $ hg metaedit --user foobar 0 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg log --template '{rev}: {author}\n' -r '42:' --hidden @@ -1483,26 +1498,57 @@ TODO: support this $ hg metaedit '.^::.' - abort: editing multiple revisions is not currently supported + abort: editing multiple revisions without --fold is not currently supported [255] + $ HGEDITOR=cat hg metaedit '.^::.' --fold + HG: This is a fold of 2 changesets. + HG: Commit message of changeset 41. + + amended + + HG: Commit message of changeset 43. + + will be evolved safely + + + + HG: Enter commit message. Lines beginning with 'HG:' are removed. + HG: Leave message empty to abort commit. + HG: -- + HG: user: test + HG: branch 'default' + HG: changed a + HG: changed newfile + 2 changesets folded + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + + $ glog -r . + @ 44:41bf1183869c@default(draft) amended + | + ~ + no new commit is created here because the date is the same $ HGEDITOR=cat hg metaedit + amended + + will be evolved safely HG: Enter commit message. Lines beginning with 'HG:' are removed. HG: Leave message empty to abort commit. HG: -- - HG: user: foobar + HG: user: test HG: branch 'default' HG: changed a + HG: changed newfile nothing changed $ glog -r '.^::.' - @ 43:62353add3dfb@default(draft) will be evolved safely + @ 44:41bf1183869c@default(draft) amended | - o 41:34ae045ec400@default(draft) amended + o 36:43c3f5ef149f@default(draft) add uu | ~ @@ -1510,15 +1556,22 @@ $ hg metaedit --config defaults.metaedit= 0 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg log -r '.^::.' --template '{rev}: {desc|firstline}\n' - 41: amended - 44: will be evolved safely + 36: add uu + 45: amended $ hg up .^ - 1 files updated, 0 files merged, 0 files removed, 0 files unresolved - $ hg metaedit --user foobar2 44 + 2 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ hg metaedit --user foobar2 45 $ hg log --template '{rev}: {author}\n' -r '42:' --hidden 42: test 43: foobar - 44: foobar - 45: foobar2 - $ hg diff -r 44 -r 45 --hidden + 44: test + 45: test + 46: foobar2 + $ hg diff -r 45 -r 46 --hidden + +'fold' one commit + $ hg metaedit 39 --fold --user foobar3 + 1 changesets folded + $ hg log -r 47 --template '{rev}: {author}\n' + 47: foobar3