D3863: histedit: factor out logic of processing state data in separate fn

pulkit (Pulkit Goyal) phabricator at mercurial-scm.org
Sat Jun 30 15:09:43 UTC 2018


pulkit created this revision.
Herald added a reviewer: durin42.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  The new function will serve as the point from where we always get a dictionary
  of data stored in the statefile and will be helpful in integrating
  state.cmdstate.read() to write statefile in cbor.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D3863

AFFECTED FILES
  hgext/histedit.py

CHANGE DETAILS

diff --git a/hgext/histedit.py b/hgext/histedit.py
--- a/hgext/histedit.py
+++ b/hgext/histedit.py
@@ -318,22 +318,29 @@
                 raise
             cmdutil.wrongtooltocontinue(self.repo, _('histedit'))
 
-        if state.startswith('v1\n'):
+        data = self._read(state)
+
+        self.parentctxnode = data['parentctxnode']
+        actions = parserules(data['rules'], self)
+        self.actions = actions
+        self.keep = data['keep']
+        self.topmost = data['topmost']
+        self.replacements = data['replacements']
+        self.backupfile = data['backupfile']
+
+    def _read(self, fp):
+        if fp.startswith('v1\n'):
             data = self._load()
             parentctxnode, rules, keep, topmost, replacements, backupfile = data
         else:
-            data = pickle.loads(state)
+            data = pickle.loads(fp)
             parentctxnode, rules, keep, topmost, replacements = data
             backupfile = None
+        rules = "\n".join(["%s %s" % (verb, rest) for [verb, rest] in rules])
 
-        self.parentctxnode = parentctxnode
-        rules = "\n".join(["%s %s" % (verb, rest) for [verb, rest] in rules])
-        actions = parserules(rules, self)
-        self.actions = actions
-        self.keep = keep
-        self.topmost = topmost
-        self.replacements = replacements
-        self.backupfile = backupfile
+        return {'parentctxnode': parentctxnode, "rules": rules, "keep": keep,
+                "topmost": topmost, "replacements": replacements,
+                "backupfile": backupfile}
 
     def write(self, tr=None):
         if tr:



To: pulkit, durin42, #hg-reviewers
Cc: mercurial-devel


More information about the Mercurial-devel mailing list