equal
deleted
inserted
replaced
19 def __init__(self, report, opener, journal, after=None): |
19 def __init__(self, report, opener, journal, after=None): |
20 self.journal = None |
20 self.journal = None |
21 |
21 |
22 # abort here if the journal already exists |
22 # abort here if the journal already exists |
23 if os.path.exists(journal): |
23 if os.path.exists(journal): |
24 raise AssertionError("journal already exists - run hg recover") |
24 raise AssertionError(_("journal already exists - run hg recover")) |
25 |
25 |
26 self.report = report |
26 self.report = report |
27 self.opener = opener |
27 self.opener = opener |
28 self.after = after |
28 self.after = after |
29 self.entries = [] |
29 self.entries = [] |
57 self.journal = None |
57 self.journal = None |
58 |
58 |
59 def abort(self): |
59 def abort(self): |
60 if not self.entries: return |
60 if not self.entries: return |
61 |
61 |
62 self.report("transaction abort!\n") |
62 self.report(_("transaction abort!\n")) |
63 |
63 |
64 for f, o in self.entries: |
64 for f, o in self.entries: |
65 try: |
65 try: |
66 self.opener(f, "a").truncate(o) |
66 self.opener(f, "a").truncate(o) |
67 except: |
67 except: |
68 self.report("failed to truncate %s\n" % f) |
68 self.report(_("failed to truncate %s\n") % f) |
69 |
69 |
70 self.entries = [] |
70 self.entries = [] |
71 |
71 |
72 self.report("rollback completed\n") |
72 self.report(_("rollback completed\n")) |
73 |
73 |
74 def rollback(opener, file): |
74 def rollback(opener, file): |
75 for l in open(file).readlines(): |
75 for l in open(file).readlines(): |
76 f, o = l.split('\0') |
76 f, o = l.split('\0') |
77 opener(f, "a").truncate(int(o)) |
77 opener(f, "a").truncate(int(o)) |