Mercurial > hg
changeset 17473:9732473aa24b
amend: use an explicit commit message for temporary amending commit
Before this changeset, the extra commit created during amend had
the same description as the final commit. This was a bit confusing
when trying to understand what that extra commit was about.
This changeset changes the description of such commit to:
temporary amend commit for <ammend-commit-hash>
The old behaviour was not a big deal, but would become more confusing
once we use obsolescence marker instead of stripping the precursors.
This also helps if the user restores a strip backup.
author | Pierre-Yves David <pierre-yves.david@logilab.fr> |
---|---|
date | Sat, 25 Aug 2012 16:20:41 +0200 |
parents | 965fbe04fd96 |
children | f85816af6294 |
files | mercurial/cmdutil.py tests/test-commit-amend.t |
diffstat | 2 files changed, 10 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- 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())
--- a/tests/test-commit-amend.t Mon Sep 10 23:44:24 2012 +0200 +++ b/tests/test-commit-amend.t Sat Aug 25 16:20:41 2012 +0200 @@ -167,6 +167,8 @@ $ echo a >> a $ HGEDITOR="\"sh\" \"`pwd`/editor.sh\"" hg commit --amend -v amending changeset ffb49186f961 + a + copying changeset a4f8a65b7c6a to ad120869acf0 another precious commit message @@ -177,9 +179,7 @@ HG: branch 'default' HG: changed a a - copying changeset 27f3aacd3011 to ad120869acf0 - a - stripping intermediate changeset 27f3aacd3011 + stripping intermediate changeset a4f8a65b7c6a stripping amended changeset ffb49186f961 2 changesets found saved backup bundle to $TESTTMP/.hg/strip-backup/ffb49186f961-amend-backup.hg (glob)