Submitter | Gregory Szorc |
---|---|
Date | March 23, 2014, 12:21 a.m. |
Message ID | <f7a3e8fe9777541850d5.1395534100@77.1.168.192.in-addr.arpa> |
Download | mbox | patch |
Permalink | /patch/4041/ |
State | Superseded |
Headers | show |
Comments
On 03/22/2014 05:21 PM, Gregory Szorc wrote: > # HG changeset patch > # User Gregory Szorc <gps@mozilla.com> > # Date 1395533677 25200 > # Sat Mar 22 17:14:37 2014 -0700 > # Node ID f7a3e8fe9777541850d5efa41162eb2498576bf5 > # Parent 4041f83efd1de680c82b65c776f85b642a59754a > branchmap: Log event when branchcache is updated (same applies to this patch) > > The blackblox log will now contain log events when the branch caches are > updated. > > Since the various branch caches update with a recursive call to > updatecache(), the reported timings may not be completely accurate. > > diff --git a/mercurial/branchmap.py b/mercurial/branchmap.py > --- a/mercurial/branchmap.py > +++ b/mercurial/branchmap.py > @@ -3,16 +3,17 @@ > # Copyright 2005-2007 Matt Mackall <mpm@selenic.com> > # > # This software may be used and distributed according to the terms of the > # GNU General Public License version 2 or any later version. > > 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""" > filename = "cache/branch2" > if repo.filtername: > filename = '%s-%s' % (filename, repo.filtername) > return filename > > @@ -70,16 +71,17 @@ def read(repo): > # This create and ordering used for branchmap purpose. > # the ordering may be partial > subsettable = {None: 'visible', > 'visible': 'served', > 'served': 'immutable', > 'immutable': 'base'} > > def updatecache(repo): > + starttime = time.time() > cl = repo.changelog > filtername = repo.filtername > partial = repo._branchcaches.get(filtername) > > revs = [] > if partial is None or not partial.validfor(repo): > partial = read(repo) > if partial is None: > @@ -92,16 +94,18 @@ def updatecache(repo): > extrarevs = subset.changelog.filteredrevs - cl.filteredrevs > revs.extend(r for r in extrarevs if r <= partial.tiprev) > revs.extend(cl.revs(start=partial.tiprev + 1)) > if revs: > partial.update(repo, revs) > partial.write(repo) > assert partial.validfor(repo), filtername > repo._branchcaches[repo.filtername] = partial > + duration = time.time() - starttime > + repo.ui.log('cache', 'Updated %s branch cache in %0.2f seconds\n') You forgot to pass in the objects to be formatted here. > > class branchcache(dict): > """A dict like object that hold branches heads cache. > > This cache is used to avoid costly computations to determine all the > branch heads of a repo. > > The cache is serialized on disk in the following format: > _______________________________________________ > Mercurial-devel mailing list > Mercurial-devel@selenic.com > http://selenic.com/mailman/listinfo/mercurial-devel
Patch
diff --git a/mercurial/branchmap.py b/mercurial/branchmap.py --- a/mercurial/branchmap.py +++ b/mercurial/branchmap.py @@ -3,16 +3,17 @@ # Copyright 2005-2007 Matt Mackall <mpm@selenic.com> # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. 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""" filename = "cache/branch2" if repo.filtername: filename = '%s-%s' % (filename, repo.filtername) return filename @@ -70,16 +71,17 @@ def read(repo): # This create and ordering used for branchmap purpose. # the ordering may be partial subsettable = {None: 'visible', 'visible': 'served', 'served': 'immutable', 'immutable': 'base'} def updatecache(repo): + starttime = time.time() cl = repo.changelog filtername = repo.filtername partial = repo._branchcaches.get(filtername) revs = [] if partial is None or not partial.validfor(repo): partial = read(repo) if partial is None: @@ -92,16 +94,18 @@ def updatecache(repo): extrarevs = subset.changelog.filteredrevs - cl.filteredrevs revs.extend(r for r in extrarevs if r <= partial.tiprev) revs.extend(cl.revs(start=partial.tiprev + 1)) if revs: partial.update(repo, revs) partial.write(repo) assert partial.validfor(repo), filtername repo._branchcaches[repo.filtername] = partial + duration = time.time() - starttime + repo.ui.log('cache', 'Updated %s branch cache in %0.2f seconds\n') class branchcache(dict): """A dict like object that hold branches heads cache. This cache is used to avoid costly computations to determine all the branch heads of a repo. The cache is serialized on disk in the following format: