# HG changeset patch # User Pulkit Goyal <7895pulkit@gmail.com> # Date 1530322849 -19800 # Node ID c6a2ce82e60b1aaea13b3f0f393542557169b14f # Parent 3beb0ea083df2aa478dc7ffcc2aeaf4965d533a4 histedit: factor out logic of processing state data in separate fn 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. Differential Revision: https://phab.mercurial-scm.org/D3863 diff -r 3beb0ea083df -r c6a2ce82e60b hgext/histedit.py --- a/hgext/histedit.py Sat Jun 30 07:05:36 2018 +0530 +++ b/hgext/histedit.py Sat Jun 30 07:10:49 2018 +0530 @@ -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: