Mercurial > evolve
changeset 4710:0e0731406efd
rewriteutil: allow rewriting merge commits (issue4561)
This patch simply allows rewriteutil.rewrite() to work with commits with
multiple parents (i.e. merges). That function is used in such commands as fold,
metaedit, touch, rewind.
The issue 4561 is marked as easy, the limitation is called unnecessary, no
tests fail after this change. What can go wrong.
author | Anton Shestakov <av6@dwimlabs.net> |
---|---|
date | Tue, 09 Jul 2019 17:08:34 +0800 |
parents | cc3569da7150 |
children | 88c8ef4d703c |
files | CHANGELOG hgext3rd/evolve/rewriteutil.py tests/test-touch.t |
diffstat | 3 files changed, 9 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/CHANGELOG Tue Jul 09 17:02:44 2019 +0800 +++ b/CHANGELOG Tue Jul 09 17:08:34 2019 +0800 @@ -8,6 +8,7 @@ * evolve: minor output message improvements * evolve: improve `hg evolve --all` behavior when "." is obsolete * topic: fix confusion in branch heads checking logic + * touch: now works on merge commit too 9.0.1 - in progress -------------------
--- a/hgext3rd/evolve/rewriteutil.py Tue Jul 09 17:02:44 2019 +0800 +++ b/hgext3rd/evolve/rewriteutil.py Tue Jul 09 17:08:34 2019 +0800 @@ -171,8 +171,6 @@ wlock = repo.wlock() lock = repo.lock() tr = repo.transaction('rewrite') - if len(old.parents()) > 1: # XXX remove this unnecessary limitation. - raise error.Abort(_('cannot amend merge changesets')) base = old.p1() updatebookmarks = bookmarksupdater(repo, old.node(), tr)
--- a/tests/test-touch.t Tue Jul 09 17:02:44 2019 +0800 +++ b/tests/test-touch.t Tue Jul 09 17:08:34 2019 +0800 @@ -186,5 +186,11 @@ working directory is now at * (glob) 1 changesets pruned $ hg touch 16 --hidden - abort: cannot amend merge changesets - [255] + $ hg glog -r '12+15+17' + o 17: merge + |\ + | o 15: ab + | + @ 12: move + | + ~