[PATCH 06 of 16] branchmap: drop all remains of `_cacheabletip`

Kevin Bullock kbullock+mercurial at ringworld.org
Thu Jan 3 17:04:26 CST 2013


On Jan 1, 2013, at 7:09 PM, Pierre-Yves David wrote:

> # HG changeset patch
> # User Pierre-Yves David <pierre-yves.david at ens-lyon.org>
> # Date 1356660678 -3600
> # Node ID 42d39c8232de6b32d6e489329bf10656960ae8a7
> # Parent  0e12b59cb6494470d08837d26d6b2753a34d8fea
> branchmap: drop all remains of `_cacheabletip`
> 
> It does not have any user left.

...after you remove the last user of it in the same patch. One change per patch. As it is, I can't tell what the change in branchmap is doing or why it's correct.

pacem in terris / мир / शान्ति / ‎‫سَلاَم‬ / 平和
Kevin R. Bullock

> diff --git a/mercurial/branchmap.py b/mercurial/branchmap.py
> --- a/mercurial/branchmap.py
> +++ b/mercurial/branchmap.py
> @@ -66,25 +66,15 @@ def updatecache(repo):
>     if partial is None or not partial.validfor(repo):
>         partial = read(repo)
>         if partial is None:
>             partial = branchcache()
> 
> -    catip = repo._cacheabletip()
> -    # if partial.tiprev == catip: cache is already up to date
> -    # if partial.tiprev >  catip: we have uncachable element in `partial` can't
> -    #                             write on disk
> -    if partial.tiprev < catip:
> -        ctxgen = (repo[r] for r in cl.revs(partial.tiprev + 1, catip))
> +    revs = list(cl.revs(start=partial.tiprev +1))
> +    if revs:
> +        ctxgen = (repo[r] for r in revs)
>         partial.update(repo, ctxgen)
>         partial.write(repo)
> -    # If cacheable tip were lower than actual tip, we need to update the
> -    # cache up to tip. This update (from cacheable to actual tip) is not
> -    # written to disk since it's not cacheable.
> -    tiprev = cl.rev(cl.tip())
> -    if partial.tiprev < tiprev:
> -        ctxgen = (repo[r] for r in cl.revs(partial.tiprev + 1, tiprev))
> -        partial.update(repo, ctxgen)
>     repo._branchcaches[repo.filtername] = partial
> 
> class branchcache(dict):
>     """A dict like object that hold branches heads cache"""
> 
> diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py
> --- a/mercurial/localrepo.py
> +++ b/mercurial/localrepo.py
> @@ -648,22 +648,10 @@ class localrepository(object):
>         for bookmark, n in self._bookmarks.iteritems():
>             if n == node:
>                 marks.append(bookmark)
>         return sorted(marks)
> 
> -    def _cacheabletip(self):
> -        """tip-most revision stable enought to used in persistent cache
> -
> -        This function is overwritten by MQ to ensure we do not write cache for
> -        a part of the history that will likely change.
> -
> -        Efficient handling of filtered revision in branchcache should offer a
> -        better alternative. But we are using this approach until it is ready.
> -        """
> -        cl = self.changelog
> -        return cl.rev(cl.tip())
> -
>     def branchmap(self):
>         '''returns a dictionary {branch: [branchheads]}'''
>         if self.filtername and not self.changelog.filteredrevs:
>             return self.unfiltered().branchmap()
>         branchmap.updatecache(self)
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at selenic.com
> http://selenic.com/mailman/listinfo/mercurial-devel



More information about the Mercurial-devel mailing list