equal
deleted
inserted
replaced
37 report(_("failed to truncate %s\n") % f) |
37 report(_("failed to truncate %s\n") % f) |
38 raise |
38 raise |
39 else: |
39 else: |
40 try: |
40 try: |
41 opener.unlink(f) |
41 opener.unlink(f) |
42 except (IOError, OSError), inst: |
42 except (IOError, OSError) as inst: |
43 if inst.errno != errno.ENOENT: |
43 if inst.errno != errno.ENOENT: |
44 raise |
44 raise |
45 |
45 |
46 backupfiles = [] |
46 backupfiles = [] |
47 for l, f, b, c in backupentries: |
47 for l, f, b, c in backupentries: |
60 report(_("failed to recover %s\n") % f) |
60 report(_("failed to recover %s\n") % f) |
61 else: |
61 else: |
62 target = f or b |
62 target = f or b |
63 try: |
63 try: |
64 vfs.unlink(target) |
64 vfs.unlink(target) |
65 except (IOError, OSError), inst: |
65 except (IOError, OSError) as inst: |
66 if inst.errno != errno.ENOENT: |
66 if inst.errno != errno.ENOENT: |
67 raise |
67 raise |
68 except (IOError, OSError, util.Abort), inst: |
68 except (IOError, OSError, util.Abort) as inst: |
69 if not c: |
69 if not c: |
70 raise |
70 raise |
71 |
71 |
72 opener.unlink(journal) |
72 opener.unlink(journal) |
73 backuppath = "%s.backupfiles" % journal |
73 backuppath = "%s.backupfiles" % journal |
75 opener.unlink(backuppath) |
75 opener.unlink(backuppath) |
76 try: |
76 try: |
77 for f in backupfiles: |
77 for f in backupfiles: |
78 if opener.exists(f): |
78 if opener.exists(f): |
79 opener.unlink(f) |
79 opener.unlink(f) |
80 except (IOError, OSError, util.Abort), inst: |
80 except (IOError, OSError, util.Abort) as inst: |
81 # only pure backup file remains, it is sage to ignore any error |
81 # only pure backup file remains, it is sage to ignore any error |
82 pass |
82 pass |
83 |
83 |
84 class transaction(object): |
84 class transaction(object): |
85 def __init__(self, report, opener, vfsmap, journalname, undoname=None, |
85 def __init__(self, report, opener, vfsmap, journalname, undoname=None, |
403 continue |
403 continue |
404 vfs = self._vfsmap[l] |
404 vfs = self._vfsmap[l] |
405 if not f and b and vfs.exists(b): |
405 if not f and b and vfs.exists(b): |
406 try: |
406 try: |
407 vfs.unlink(b) |
407 vfs.unlink(b) |
408 except (IOError, OSError, util.Abort), inst: |
408 except (IOError, OSError, util.Abort) as inst: |
409 if not c: |
409 if not c: |
410 raise |
410 raise |
411 # Abort may be raise by read only opener |
411 # Abort may be raise by read only opener |
412 self.report("couldn't remote %s: %s\n" |
412 self.report("couldn't remote %s: %s\n" |
413 % (vfs.join(b), inst)) |
413 % (vfs.join(b), inst)) |
426 continue |
426 continue |
427 vfs = self._vfsmap[l] |
427 vfs = self._vfsmap[l] |
428 if b and vfs.exists(b): |
428 if b and vfs.exists(b): |
429 try: |
429 try: |
430 vfs.unlink(b) |
430 vfs.unlink(b) |
431 except (IOError, OSError, util.Abort), inst: |
431 except (IOError, OSError, util.Abort) as inst: |
432 if not c: |
432 if not c: |
433 raise |
433 raise |
434 # Abort may be raise by read only opener |
434 # Abort may be raise by read only opener |
435 self.report("couldn't remote %s: %s\n" |
435 self.report("couldn't remote %s: %s\n" |
436 % (vfs.join(b), inst)) |
436 % (vfs.join(b), inst)) |