David Soria Parra <davidsp@fb.com> [Tue, 12 Aug 2014 16:48:54 -0700] rev 22150
repoview: add caching bits
Add a caching infrastructure to cache hidden changesets. The cache tries to read
the cache lazily and falls back to recomputing if no wlock can be obtain.
To validate the cache we store a sha of the obstore content and repo heads in
the beginning of the cache which we check every request.
David Soria Parra <davidsp@fb.com> [Wed, 06 Aug 2014 13:26:04 -0700] rev 22149
repoview: split _gethiddenblockers
Split up _gethiddenblockers into two categories: (1) "static' blockers
that solely rely on the contents of obstore and are visible children of
hidden changsets. (2) "dynamic" blockers, appearing by having wd parents,
bookmarks or tags pointing to hidden changesets.
We assume that (1) doesn't change often and can be easily cached with a good
invalidation strategy. (2) change often, but barely produce blockers, so we
can recompute them if necessary.
David Soria Parra <davidsp@fb.com> [Tue, 12 Aug 2014 16:42:24 -0700] rev 22148
repoview: use set for blockers
Blockers should be unique but tags and bookmarks could point to the same rev,
therefore use a set to ensure that we don't have duplicates.