Mercurial > public > mercurial-scm > hg
diff mercurial/branchmap.py @ 21031:05cfcecb3aef
branchmap: log events related to branch cache
The blackblox log will now contain log events when the branch caches are
updated and written.
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Sat, 22 Mar 2014 17:14:37 -0700 |
parents | d9e1c167943b |
children | c20843aee8a4 |
line wrap: on
line diff
--- a/mercurial/branchmap.py Mon Apr 14 11:50:05 2014 -0700 +++ b/mercurial/branchmap.py Sat Mar 22 17:14:37 2014 -0700 @@ -8,6 +8,7 @@ from node import bin, hex, nullid, nullrev import encoding import util +import time def _filename(repo): """name of a branchcache file for a given repo or repoview""" @@ -206,8 +207,10 @@ if self.filteredhash is not None: cachekey.append(hex(self.filteredhash)) f.write(" ".join(cachekey) + '\n') + nodecount = 0 for label, nodes in sorted(self.iteritems()): for node in nodes: + nodecount += 1 if node in self._closednodes: state = 'c' else: @@ -215,6 +218,9 @@ f.write("%s %s %s\n" % (hex(node), state, encoding.fromlocal(label))) f.close() + repo.ui.log('branchcache', + 'wrote %s branch cache with %d labels and %d nodes\n', + repo.filtername, len(self), nodecount) except (IOError, OSError, util.Abort): # Abort may be raise by read only opener pass @@ -224,6 +230,7 @@ missing heads, and a generator of nodes that are strictly a superset of heads missing, this function updates self to be correct. """ + starttime = time.time() cl = repo.changelog # collect new branch entries newbranches = {} @@ -272,3 +279,7 @@ self.tipnode = cl.node(tiprev) self.tiprev = tiprev self.filteredhash = self._hashfiltered(repo) + + duration = time.time() - starttime + repo.ui.log('branchcache', 'updated %s branch cache in %.4f seconds\n', + repo.filtername, duration)