comparison mercurial/localrepo.py @ 27846:63821023ea79

with: use context manager in localrepo recover
author Bryan O'Sullivan <bryano@fb.com>
date Fri, 15 Jan 2016 13:14:50 -0800
parents dad6404ccddb
children e219dbfd0342
comparison
equal deleted inserted replaced
27845:7417e1c10253 27846:63821023ea79
1124 self.vfs.tryread("bookmarks")) 1124 self.vfs.tryread("bookmarks"))
1125 self.svfs.write("journal.phaseroots", 1125 self.svfs.write("journal.phaseroots",
1126 self.svfs.tryread("phaseroots")) 1126 self.svfs.tryread("phaseroots"))
1127 1127
1128 def recover(self): 1128 def recover(self):
1129 lock = self.lock() 1129 with self.lock():
1130 try:
1131 if self.svfs.exists("journal"): 1130 if self.svfs.exists("journal"):
1132 self.ui.status(_("rolling back interrupted transaction\n")) 1131 self.ui.status(_("rolling back interrupted transaction\n"))
1133 vfsmap = {'': self.svfs, 1132 vfsmap = {'': self.svfs,
1134 'plain': self.vfs,} 1133 'plain': self.vfs,}
1135 transaction.rollback(self.svfs, vfsmap, "journal", 1134 transaction.rollback(self.svfs, vfsmap, "journal",
1137 self.invalidate() 1136 self.invalidate()
1138 return True 1137 return True
1139 else: 1138 else:
1140 self.ui.warn(_("no interrupted transaction available\n")) 1139 self.ui.warn(_("no interrupted transaction available\n"))
1141 return False 1140 return False
1142 finally:
1143 lock.release()
1144 1141
1145 def rollback(self, dryrun=False, force=False): 1142 def rollback(self, dryrun=False, force=False):
1146 wlock = lock = dsguard = None 1143 wlock = lock = dsguard = None
1147 try: 1144 try:
1148 wlock = self.wlock() 1145 wlock = self.wlock()