diff -r 965fbe04fd96 -r 9732473aa24b mercurial/cmdutil.py --- a/mercurial/cmdutil.py Mon Sep 10 23:44:24 2012 +0200 +++ b/mercurial/cmdutil.py Sat Aug 25 16:20:41 2012 +0200 @@ -1582,10 +1582,14 @@ lock = repo.lock() tr = repo.transaction('amend') try: + # See if we got a message from -m or -l, if not, open the editor + # with the message of the changeset to amend + message = logmessage(ui, opts) # First, do a regular commit to record all changes in the working # directory (if there are any) ui.callhooks = False try: + opts['message'] = 'temporary amend commit for %s' % old node = commit(ui, repo, commitfunc, pats, opts) finally: ui.callhooks = True @@ -1618,7 +1622,6 @@ user = ctx.user() date = ctx.date() - message = ctx.description() # Recompute copies (avoid recording a -> b -> a) copied = copies.pathcopies(base, ctx) @@ -1663,17 +1666,10 @@ except KeyError: raise IOError - # See if we got a message from -m or -l, if not, open the editor - # with the message of the changeset to amend user = opts.get('user') or old.user() date = opts.get('date') or old.date() - message = logmessage(ui, opts) - if not message: - cctx = context.workingctx(repo, old.description(), - user, date, extra, - repo.status(base.node(), - old.node())) - message = commitforceeditor(repo, cctx, []) + if not message: + message = old.description() new = context.memctx(repo, parents=[base.node(), nullid], @@ -1683,6 +1679,7 @@ user=user, date=date, extra=extra) + new._text = commitforceeditor(repo, new, []) ph = repo.ui.config('phases', 'new-commit', phases.draft) try: repo.ui.setconfig('phases', 'new-commit', old.phase())