comparison mercurial/branchmap.py @ 42602:c7d236b55a3e

py3: fix formatting of branchmap log messages with repo.filtername=None `"%s" % None` does not work on py3. I've extracted a little function for producing a formatted message given the filter name. Differential Revision: https://phab.mercurial-scm.org/D6644
author Martin von Zweigbergk <martinvonz@google.com>
date Sun, 14 Jul 2019 23:21:28 -0700
parents 9893d7aa7420
children 3018749a71bb
comparison
equal deleted inserted replaced
42601:862f6bddacce 42602:c7d236b55a3e
118 118
119 def _unknownnode(node): 119 def _unknownnode(node):
120 """ raises ValueError when branchcache found a node which does not exists 120 """ raises ValueError when branchcache found a node which does not exists
121 """ 121 """
122 raise ValueError(r'node %s does not exist' % pycompat.sysstr(hex(node))) 122 raise ValueError(r'node %s does not exist' % pycompat.sysstr(hex(node)))
123
124 def _branchcachedesc(repo):
125 if repo.filtername is not None:
126 return 'branch cache (%s)' % repo.filtername
127 else:
128 return 'branch cache'
123 129
124 class branchcache(object): 130 class branchcache(object):
125 """A dict like object that hold branches heads cache. 131 """A dict like object that hold branches heads cache.
126 132
127 This cache is used to avoid costly computations to determine all the 133 This cache is used to avoid costly computations to determine all the
239 except (IOError, OSError): 245 except (IOError, OSError):
240 return None 246 return None
241 247
242 except Exception as inst: 248 except Exception as inst:
243 if repo.ui.debugflag: 249 if repo.ui.debugflag:
244 msg = 'invalid branchheads cache' 250 msg = 'invalid %s: %s\n'
245 if repo.filtername is not None: 251 repo.ui.debug(msg % (_branchcachedesc(repo),
246 msg += ' (%s)' % repo.filtername 252 pycompat.bytestr(inst)))
247 msg += ': %s\n'
248 repo.ui.debug(msg % pycompat.bytestr(inst))
249 bcache = None 253 bcache = None
250 254
251 finally: 255 finally:
252 if f: 256 if f:
253 f.close() 257 f.close()
349 state = 'c' 353 state = 'c'
350 else: 354 else:
351 state = 'o' 355 state = 'o'
352 f.write("%s %s %s\n" % (hex(node), state, label)) 356 f.write("%s %s %s\n" % (hex(node), state, label))
353 f.close() 357 f.close()
354 repo.ui.log('branchcache', 358 repo.ui.log('branchcache', 'wrote %s with %d labels and %d nodes\n',
355 'wrote %s branch cache with %d labels and %d nodes\n', 359 _branchcachedesc(repo), len(self._entries), nodecount)
356 repo.filtername, len(self._entries), nodecount)
357 except (IOError, OSError, error.Abort) as inst: 360 except (IOError, OSError, error.Abort) as inst:
358 # Abort may be raised by read only opener, so log and continue 361 # Abort may be raised by read only opener, so log and continue
359 repo.ui.debug("couldn't write branch cache: %s\n" % 362 repo.ui.debug("couldn't write branch cache: %s\n" %
360 stringutil.forcebytestr(inst)) 363 stringutil.forcebytestr(inst))
361 364
422 self.tipnode = cl.node(tiprev) 425 self.tipnode = cl.node(tiprev)
423 self.tiprev = tiprev 426 self.tiprev = tiprev
424 self.filteredhash = scmutil.filteredhash(repo, self.tiprev) 427 self.filteredhash = scmutil.filteredhash(repo, self.tiprev)
425 428
426 duration = util.timer() - starttime 429 duration = util.timer() - starttime
427 repo.ui.log('branchcache', 'updated %s branch cache in %.4f seconds\n', 430 repo.ui.log('branchcache', 'updated %s in %.4f seconds\n',
428 repo.filtername or b'None', duration) 431 _branchcachedesc(repo), duration)
429 432
430 self.write(repo) 433 self.write(repo)
431 434
432 435
433 class remotebranchcache(branchcache): 436 class remotebranchcache(branchcache):