diff hgext/histedit.py @ 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 365fdbc54f1f
children d71c2da01d0d
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")