Mercurial > hg
changeset 24626:e767f5aba810
histedit: fix preventing strips during histedit
We were trying to prevent strips of important nodes during histedit,
but the check was actually comparing the short hashes in the rules to
the exact value the user typed in, so it only ever worked if the user
typed a 12 character hash.
author | Durham Goode <durham@fb.com> |
---|---|
date | Sat, 04 Apr 2015 11:24:48 -0700 |
parents | 2cebf17c0fcc |
children | f33236c9b025 |
files | hgext/histedit.py tests/test-histedit-edit.t |
diffstat | 2 files changed, 5 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/histedit.py Fri Apr 03 15:18:34 2015 -0700 +++ b/hgext/histedit.py Sat Apr 04 11:24:48 2015 -0700 @@ -1030,8 +1030,9 @@ if os.path.exists(os.path.join(repo.path, 'histedit-state')): state = histeditstate(repo) state.read() - histedit_nodes = set([ctx for (action, ctx) in state.rules]) - strip_nodes = set([repo[n].hex() for n in nodelist]) + histedit_nodes = set([repo[rulehash].node() for (action, rulehash) + in state.rules if rulehash in repo]) + strip_nodes = set([repo[n].node() for n in nodelist]) common_nodes = histedit_nodes & strip_nodes if common_nodes: raise util.Abort(_("histedit in progress, can't strip %s")
--- a/tests/test-histedit-edit.t Fri Apr 03 15:18:34 2015 -0700 +++ b/tests/test-histedit-edit.t Sat Apr 04 11:24:48 2015 -0700 @@ -87,8 +87,8 @@ [255] Try to delete necessary commit - $ hg strip -r 652413bf663e - abort: histedit in progress, can't strip 363532343133 + $ hg strip -r 652413b + abort: histedit in progress, can't strip 652413bf663e [255] commit, then edit the revision