Mercurial > hg
changeset 27148:39163708825c
commit: preserve extra when amending with commit --amend
The new extra propagation needs to be accounted for in cmdutil.amend,
when checking for a no-changes fast-path.
author | Mike Edgar <adgar@google.com> |
---|---|
date | Sat, 28 Nov 2015 04:11:57 -0500 |
parents | 804abe8999f3 |
children | 2f804a38351e |
files | mercurial/cmdutil.py mercurial/commands.py |
diffstat | 2 files changed, 9 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/cmdutil.py Sat Nov 28 04:11:38 2015 -0500 +++ b/mercurial/cmdutil.py Sat Nov 28 04:11:57 2015 -0500 @@ -2619,6 +2619,11 @@ message = old.description() pureextra = extra.copy() + if 'amend_source' in pureextra: + del pureextra['amend_source'] + pureoldextra = old.extra() + if 'amend_source' in pureoldextra: + del pureoldextra['amend_source'] extra['amend_source'] = old.hex() new = context.memctx(repo, @@ -2636,7 +2641,7 @@ and newdesc == old.description() and user == old.user() and date == old.date() - and pureextra == old.extra()): + and pureextra == pureoldextra): # nothing changed. continuing here would create a new node # anyway because of the amend_source noise. #
--- a/mercurial/commands.py Sat Nov 28 04:11:38 2015 -0500 +++ b/mercurial/commands.py Sat Nov 28 04:11:57 2015 -0500 @@ -1617,6 +1617,9 @@ if not allowunstable and old.children(): raise error.Abort(_('cannot amend changeset with children')) + newextra = extra.copy() + newextra['branch'] = branch + extra = newextra # commitfunc is used only for temporary amend commit by cmdutil.amend def commitfunc(ui, repo, message, match, opts): return repo.commit(message,