diff -r c39afce52e31 -r 8cbada2b0c43 hgext/evolve.py --- a/hgext/evolve.py Wed Nov 21 11:37:30 2012 +0100 +++ b/hgext/evolve.py Tue Nov 27 14:28:41 2012 +0100 @@ -1809,7 +1809,8 @@ lockmod.release(lock, wlock) @command('^fold', - [('r', 'rev', [], 'revisions to fold'),], + [('r', 'rev', [], 'revisions to fold'), + ], # allow to choose the seed ? _('[-r] revs')) def fold(ui, repo, *revs, **opts): @@ -1839,10 +1840,14 @@ try: allctx = [repo[r] for r in revs] targetphase = max(c.phase() for c in allctx) - msg = '\n\n***\n\n'.join(c.description() for c in allctx) + msgs = ["HG: This is a fold of %d changesets." % len(allctx)] + msgs += ["HG: Commit message of changeset %s.\n\n%s\n" % + (c.rev(), c.description()) for c in allctx] + commitopts = {'message': "\n".join(msgs)} + commitopts['edit'] = True newid, _ = rewrite(repo, root, allctx, head, [root.p1().node(), root.p2().node()], - commitopts={'message': msg}) + commitopts=commitopts) phases.retractboundary(repo, targetphase, [newid]) createmarkers(repo, [(ctx, (repo[newid],)) for ctx in allctx])