mercurial/localrepo.py
changeset 3761 9433bdcaa9ae
parent 3733 9e67fecbfd16
child 3773 73860ffbe798
equal deleted inserted replaced
3760:aeafd80c1e78 3761:9433bdcaa9ae
   325             f = self.opener("branches.cache")
   325             f = self.opener("branches.cache")
   326             lines = f.read().split('\n')
   326             lines = f.read().split('\n')
   327             f.close()
   327             f.close()
   328             last, lrev = lines.pop(0).rstrip().split(" ", 1)
   328             last, lrev = lines.pop(0).rstrip().split(" ", 1)
   329             last, lrev = bin(last), int(lrev)
   329             last, lrev = bin(last), int(lrev)
   330             if (lrev < self.changelog.count() and
   330             if not (lrev < self.changelog.count() and
   331                 self.changelog.node(lrev) == last): # sanity check
   331                     self.changelog.node(lrev) == last): # sanity check
   332                 for l in lines:
   332                 # invalidate the cache
   333                     if not l: continue
   333                 raise ValueError('Invalid branch cache: unknown tip')
   334                     node, label = l.rstrip().split(" ", 1)
   334             for l in lines:
   335                     partial[label] = bin(node)
   335                 if not l: continue
   336             else: # invalidate the cache
   336                 node, label = l.rstrip().split(" ", 1)
   337                 last, lrev = nullid, nullrev
   337                 partial[label] = bin(node)
   338         except IOError:
   338         except (KeyboardInterrupt, util.SignalInterrupt):
   339             last, lrev = nullid, nullrev
   339             raise
       
   340         except Exception, inst:
       
   341             if self.ui.debugflag:
       
   342                 self.ui.warn(str(inst), '\n')
       
   343             partial, last, lrev = {}, nullid, nullrev
   340         return partial, last, lrev
   344         return partial, last, lrev
   341 
   345 
   342     def _writebranchcache(self, branches, tip, tiprev):
   346     def _writebranchcache(self, branches, tip, tiprev):
   343         try:
   347         try:
   344             f = self.opener("branches.cache", "w")
   348             f = self.opener("branches.cache", "w")