[PATCH 3 of 9] branchmap: takes filtered revision in account for cache calculation
Kevin Bullock
kbullock+mercurial at ringworld.org
Thu Dec 27 10:49:57 CST 2012
On Dec 26, 2012, at 2:32 PM, Pierre-Yves David wrote:
> # HG changeset patch
> # User Pierre-Yves David <pierre-yves.david at ens-lyon.org>
> # Date 1356276302 -3600
> # Node ID 4b098d0339f9e8b1805c4f6ef1d8bcf59f5a6349
> # Parent fbf90f3d261f274c1e690026c1a95fd787d3facc
> branchmap: takes filtered revision in account for cache calculation
>
> Tracking tipnode and tiprev is not enough to ensure validaty of the cache as
> they do not help to distinct cache that ignored various revision bellow tip rev.
help distinguish a cache that revisions below
>
> To detect such difference, we build a cache of all revision ignored. This hash
hash? ignored revisions.
> is then used when checking validity of a cache for a repo.
checking the validity of
> diff --git a/mercurial/branchmap.py b/mercurial/branchmap.py
> --- a/mercurial/branchmap.py
> +++ b/mercurial/branchmap.py
> @@ -5,10 +5,11 @@
> # 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
>
> def read(repo):
> try:
> f = repo.opener("cache/branchheads")
> lines = f.read().split('\n')
> @@ -67,22 +68,45 @@ def updatecache(repo):
> repo._branchcache = partial
>
> class branchcache(dict):
> """A dict like object that hold branches heads cache"""
>
> - def __init__(self, entries=(), tipnode=nullid, tiprev=nullrev):
> + def __init__(self, entries=(), tipnode=nullid, tiprev=nullrev,
> + filtered=None):
> super(branchcache, self).__init__(entries)
> self.tipnode = tipnode
> self.tiprev = tiprev
> + self.filtered = filtered
Name of this property should indicate that it's a hash, not a list.
pacem in terris / мир / शान्ति / سَلاَم / 平和
Kevin R. Bullock
More information about the Mercurial-devel
mailing list