D3866: histedit: use cbor to write histedit-state file

yuja (Yuya Nishihara) phabricator at mercurial-scm.org
Sun Jul 1 08:35:53 EDT 2018


yuja added a comment.


  Queued the first 4 patches, thanks.
  
  >   $ HGEDITOR="sh $TESTTMP/editplan.sh" hg histedit --edit-plan
  >   $ cat .hg/histedit-state
  > 
  > - v1
  > - 055a42cdd88768532f9cf79daa407fc8d138de9b
  > - 3c6a8ed2ebe862cc949d2caa30775dd6f16fb799
  > - False
  > - 3
  > - drop
  > - e860deea161a2f77de56603b340ebbb4536308ae
  > - drop
  > - 652413bf663ef2a641cab26574e46d5f5a64a55a
  > - drop
  > - 3c6a8ed2ebe862cc949d2caa30775dd6f16fb799
  > - 0
  > - strip-backup/177f92b77385-0ebe6a8f-histedit.hg +  2
  
  I know anything other than "v1" will make old hg crash, but I think the
  version syntax should stay "v%d" (i.e. "v2" in this case.)
  
  >   def _write(self, fp):
  > 
  > - fp.write('v1\n')
  > - fp.write('%s\n' % node.hex(self.parentctxnode))
  > - fp.write('%s\n' % node.hex(self.topmost))
  > - fp.write('%s\n' % ('True' if self.keep else 'False'))
  > - fp.write('%d\n' % len(self.actions)) +        data = {'parentctxnode': self.parentctxnode, +                'topmost': self.topmost, +                'keep': self.keep, +                'backupfile': self.backupfile, +                'replacements': self.replacements} +        rules = [] for action in self.actions:
  > - fp.write('%s\n' % action.tostate())
  > - fp.write('%d\n' % len(self.replacements))
  > - for replacement in self.replacements:
  > - fp.write('%s%s\n' % (node.hex(replacement[0]), ''.join(node.hex(r)
  > - for r in replacement[1])))
  > - backupfile = self.backupfile
  > - if not backupfile:
  > - backupfile = ''
  > - fp.write('%s\n' % backupfile) +            rules.append(action.tostate().split('\n')) +        rules = "\n".join(["%s %s" % (verb, rest) for [verb, rest] in rules])
  
  Isn't it better to serialize `[(verb, rest)]` as is since CBOR can store that?

REPOSITORY
  rHG Mercurial

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

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


More information about the Mercurial-devel mailing list