[PATCH] manifest: don't store None in fulltextcache

Durham Goode durham at fb.com
Tue Oct 18 16:09:19 EDT 2016



On 10/17/16, 10:58 PM, "Martin von Zweigbergk" <martinvonz at google.com> wrote:

># HG changeset patch
># User Martin von Zweigbergk <martinvonz at google.com>
># Date 1476769882 25200
>#      Mon Oct 17 22:51:22 2016 -0700
># Node ID d2c313417026d76cb19534277df3f3a8b6b22425
># Parent  87a7c0d403ff29dcae2a41e0516c75bbd9f6a5a8
>manifest: don't store None in fulltextcache
>
>When we read a value from fulltextcache, we expect it to be an array,
>so we should not store None in it. Found while working on narrowhg.
>
>diff -r 87a7c0d403ff -r d2c313417026 mercurial/manifest.py
>--- a/mercurial/manifest.py	Tue Oct 18 02:09:08 2016 +0200
>+++ b/mercurial/manifest.py	Mon Oct 17 22:51:22 2016 -0700
>@@ -1210,7 +1210,8 @@
>                 n = self.addrevision(text, transaction, link, p1, p2)
>                 arraytext = array.array('c', text)
> 
>-        self.fulltextcache[n] = arraytext
>+        if arraytext is not None:
>+            self.fulltextcache[n] = arraytext
> 
>         return n
> 
>@@ -1506,7 +1507,8 @@
>             m = self._newmanifest(text)
>             arraytext = array.array('c', text)
>         self._mancache[node] = m
>-        self.fulltextcache[node] = arraytext
>+        if arraytext is not None:
>+            self.fulltextcache[node] = arraytext
>         return m
> 
>     def readshallow(self, node):

LGTM.  Is there a tree code path that hits this that is not covered by tests?



More information about the Mercurial-devel mailing list