mercurial/transaction.py
branchstable
changeset 10228 056c366fea8c
parent 9693 c40a1ee20aa5
child 10263 25e572394f5c
equal deleted inserted replaced
10220:500d09be7ace 10228:056c366fea8c
    40                     raise
    40                     raise
    41     os.unlink(journal)
    41     os.unlink(journal)
    42 
    42 
    43 class transaction(object):
    43 class transaction(object):
    44     def __init__(self, report, opener, journal, after=None, createmode=None):
    44     def __init__(self, report, opener, journal, after=None, createmode=None):
    45         self.journal = None
       
    46 
       
    47         self.count = 1
    45         self.count = 1
    48         self.report = report
    46         self.report = report
    49         self.opener = opener
    47         self.opener = opener
    50         self.after = after
    48         self.after = after
    51         self.entries = []
    49         self.entries = []
   138 
   136 
   139     def _abort(self):
   137     def _abort(self):
   140         self.count = 0
   138         self.count = 0
   141         self.file.close()
   139         self.file.close()
   142 
   140 
   143         if not self.entries:
   141         try:
   144             if self.journal:
   142             if not self.entries:
   145                 os.unlink(self.journal)
   143                 if self.journal:
   146             return
   144                     os.unlink(self.journal)
       
   145                 return
   147 
   146 
   148         self.report(_("transaction abort!\n"))
   147             self.report(_("transaction abort!\n"))
   149 
   148 
   150         try:
       
   151             try:
   149             try:
   152                 _playback(self.journal, self.report, self.opener, self.entries, False)
   150                 _playback(self.journal, self.report, self.opener, self.entries, False)
   153                 self.report(_("rollback completed\n"))
   151                 self.report(_("rollback completed\n"))
   154             except:
   152             except:
   155                 self.report(_("rollback failed - please run hg recover\n"))
   153                 self.report(_("rollback failed - please run hg recover\n"))