Mercurial > hg
changeset 24154:a41902aac76d stable
repoview: invalidate cached changelog if _delayed changes (issue4549)
Starting with 2d54aa5397cd, when a clone reached the checkout stage,
the cached changelog in the filtered view was still seeing the
_delayed flag, even though the changelog had already been finalized.
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Sun, 01 Mar 2015 23:20:02 -0600 |
parents | f7401f816cc9 |
children | e5ce49a30146 |
files | mercurial/repoview.py |
diffstat | 1 files changed, 3 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/repoview.py Thu Feb 26 10:23:04 2015 -0800 +++ b/mercurial/repoview.py Sun Mar 01 23:20:02 2015 -0600 @@ -274,7 +274,8 @@ unfichangelog = unfi.changelog revs = filterrevs(unfi, self.filtername) cl = self._clcache - newkey = (len(unfichangelog), unfichangelog.tip(), hash(revs)) + newkey = (len(unfichangelog), unfichangelog.tip(), hash(revs), + unfichangelog._delayed) if cl is not None: # we need to check curkey too for some obscure reason. # MQ test show a corruption of the underlying repo (in _clcache) @@ -282,7 +283,7 @@ oldfilter = cl.filteredrevs try: cl.filteredrevs = () # disable filtering for tip - curkey = (len(cl), cl.tip(), hash(oldfilter)) + curkey = (len(cl), cl.tip(), hash(oldfilter), cl._delayed) finally: cl.filteredrevs = oldfilter if newkey != self._clcachekey or newkey != curkey: