mercurial/transaction.py
changeset 25660 328739ea70c3
parent 25658 e93036747902
child 25986 89049011f304
equal deleted inserted replaced
25659:d60678a567a9 25660:328739ea70c3
    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))