[PATCH] manifest: remove _repo from manifestctx objects

Yuya Nishihara yuya at tcha.org
Sun Mar 5 00:04:50 EST 2017


On Wed, 1 Mar 2017 16:57:19 -0800, Durham Goode wrote:
> # HG changeset patch
> # User Durham Goode <durham at fb.com>
> # Date 1488415188 28800
> #      Wed Mar 01 16:39:48 2017 -0800
> # Node ID b787c41767339158927232ec7a9092196e887453
> # Parent  0bb3089fe73527c64f1afc40b86ecb8dfe7fd7aa
> manifest: remove _repo from manifestctx objects
> 
> We were storing the repo on the manifestctx objects so that they could access
> the manifestlog via repo.manifestlog, which would refresh the structure if it
> became out of date. This caused probems however when we want to have multiple
> manifest logs in memory at once, like when transitioning to tree manifest from
> flat manifests, since a tree manifest would try to access sub-trees via
> repo.manifestlog[node], which was the flat manifest.
> 
> The solution is to just not store the repo, and instead store the manifestlog
> that created this context. This removes the invalidation when the in memory
> manifestlog becomes out of date, but people should probably not be keeping ctx's
> around that long anyway.

The direction seems good and I like it. Queued, thanks.


More information about the Mercurial-devel mailing list