[PATCH 2 of 8 "] manifestcache: stop altering the lru cache order while displaying it

Pierre-Yves David pierre-yves.david at ens-lyon.org
Sat Mar 16 06:36:23 EDT 2019


# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at octobus.net>
# Date 1552657956 0
#      Fri Mar 15 13:52:36 2019 +0000
# Node ID a0db76493f2b874b666b67ed50609b0651cedc11
# Parent  85fa9d19ba227cb04a6c4209a71b1a2f858c6ede
# EXP-Topic manifestcache
# Available At https://bitbucket.org/octobus/mercurial-devel/
#              hg pull https://bitbucket.org/octobus/mercurial-devel/ -r a0db76493f2b
manifestcache: stop altering the lru cache order while displaying it

Accessing value with `.get` alter the iteration order and make the output of
the debug command misbehave, showing multiple entry twice.

We need more than 2 entry to see the bug, so there are not test change. Later
test will introduce a third entry and would fail without this fix.

diff --git a/mercurial/debugcommands.py b/mercurial/debugcommands.py
--- a/mercurial/debugcommands.py
+++ b/mercurial/debugcommands.py
@@ -1503,7 +1503,7 @@ def debugmanifestfulltextcache(ui, repo,
         totalsize = 0
         for nodeid in cache:
             # Use cache.get to not update the LRU order
-            data = cache.get(nodeid)
+            data = cache.peek(nodeid)
             size = len(data)
             totalsize += size + 24   # 20 bytes nodeid, 4 bytes size
             ui.write(_('id: %s, size %s\n') % (


More information about the Mercurial-devel mailing list