# HG changeset patch # User Durham Goode # Date 1428171888 25200 # Node ID e767f5aba8102a90b2d0a6a5b3f8970c4f720bd6 # Parent 2cebf17c0fccfad4e38b0274c582bcdd1de1be5c 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. diff -r 2cebf17c0fcc -r e767f5aba810 hgext/histedit.py --- 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") diff -r 2cebf17c0fcc -r e767f5aba810 tests/test-histedit-edit.t --- 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