# HG changeset patch # User Durham Goode # Date 1488133007 28800 # Node ID 4a1486c73fdffd0db4f01327694acd484c742ef8 # Parent 356937ea7a02a692281b9ebb692b45a2780a8434 manifest: check 'if x is None' instead of 'if not x' The old code here would end up executing __len__ on a tree manifest to determine if 'not _data' was true or not. This was very expensive on large repos. Since this function just cares about memoization, we can just check 'if _data is None' instead and save a bunch of time. diff -r 356937ea7a02 -r 4a1486c73fdf mercurial/manifest.py --- a/mercurial/manifest.py Sat Feb 25 03:42:43 2017 +0530 +++ b/mercurial/manifest.py Sun Feb 26 10:16:47 2017 -0800 @@ -1386,7 +1386,7 @@ return self._revlog().parents(self._node) def read(self): - if not self._data: + if self._data is None: if self._node == revlog.nullid: self._data = manifestdict() else: @@ -1484,7 +1484,7 @@ return self._repo.manifestlog._revlog.dirlog(self._dir) def read(self): - if not self._data: + if self._data is None: rl = self._revlog() if self._node == revlog.nullid: self._data = treemanifest()