Mercurial > hg
comparison hgext/histedit.py @ 31511:fa8aaff2001a
histedit: add transaction support to writing the state file
This will be used in a future diff to enable a single transaction around an
entire histedit.
author | Durham Goode <durham@fb.com> |
---|---|
date | Fri, 10 Mar 2017 15:43:31 -0800 |
parents | f84fbd27b6d3 |
children | 16f8107a489c |
comparison
equal
deleted
inserted
replaced
31510:2244fb3eee49 | 31511:fa8aaff2001a |
---|---|
298 self.keep = keep | 298 self.keep = keep |
299 self.topmost = topmost | 299 self.topmost = topmost |
300 self.replacements = replacements | 300 self.replacements = replacements |
301 self.backupfile = backupfile | 301 self.backupfile = backupfile |
302 | 302 |
303 def write(self): | 303 def write(self, tr=None): |
304 fp = self.repo.vfs('histedit-state', 'w') | 304 if tr: |
305 tr.addfilegenerator('histedit-state', ('histedit-state',), | |
306 self._write, location='plain') | |
307 else: | |
308 with self.repo.vfs("histedit-state", "w") as f: | |
309 self._write(f) | |
310 | |
311 def _write(self, fp): | |
305 fp.write('v1\n') | 312 fp.write('v1\n') |
306 fp.write('%s\n' % node.hex(self.parentctxnode)) | 313 fp.write('%s\n' % node.hex(self.parentctxnode)) |
307 fp.write('%s\n' % node.hex(self.topmost)) | 314 fp.write('%s\n' % node.hex(self.topmost)) |
308 fp.write('%s\n' % self.keep) | 315 fp.write('%s\n' % self.keep) |
309 fp.write('%d\n' % len(self.actions)) | 316 fp.write('%d\n' % len(self.actions)) |
315 for r in replacement[1]))) | 322 for r in replacement[1]))) |
316 backupfile = self.backupfile | 323 backupfile = self.backupfile |
317 if not backupfile: | 324 if not backupfile: |
318 backupfile = '' | 325 backupfile = '' |
319 fp.write('%s\n' % backupfile) | 326 fp.write('%s\n' % backupfile) |
320 fp.close() | |
321 | 327 |
322 def _load(self): | 328 def _load(self): |
323 fp = self.repo.vfs('histedit-state', 'r') | 329 fp = self.repo.vfs('histedit-state', 'r') |
324 lines = [l[:-1] for l in fp.readlines()] | 330 lines = [l[:-1] for l in fp.readlines()] |
325 | 331 |