Mercurial > hg-stable
changeset 23257:37c57a7cf160
context.status: explain "caching reasons" more fully
Where we "load earliest manifest first for caching reasons", elaborate
on what "caching reasons" refers to. Text provided by Matt in
http://thread.gmane.org/gmane.comp.version-control.mercurial.devel/73235/focus=73578.
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Tue, 11 Nov 2014 10:16:54 -0800 |
parents | 1c11393d5dfb |
children | 10697f29af2b |
files | mercurial/context.py |
diffstat | 1 files changed, 6 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/context.py Tue Nov 11 10:35:06 2014 -0500 +++ b/mercurial/context.py Tue Nov 11 10:16:54 2014 -0800 @@ -96,7 +96,12 @@ def _buildstatus(self, other, s, match, listignored, listclean, listunknown): """build a status with respect to another context""" - # load earliest manifest first for caching reasons + # Load earliest manifest first for caching reasons. More specifically, + # if you have revisions 1000 and 1001, 1001 is probably stored as a + # delta against 1000. Thus, if you read 1000 first, we'll reconstruct + # 1000 and cache it so that when you read 1001, we just need to apply a + # delta to what's in the cache. So that's one full reconstruction + one + # delta application. if self.rev() is not None and self.rev() < other.rev(): self.manifest() mf1 = other._manifestmatches(match, s)