Mercurial > public > mercurial-scm > hg
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): |