# HG changeset patch # User Augie Fackler # Date 1489900260 14400 # Node ID 2244fb3eee4947d5a3db8488fb97ad357295b773 # Parent 5c993619314590a20745e8b71220038360e5841e localrepo: forcibly copy list of filecache keys On Python 3, keys() is more like iterkeys(), so we got in trouble for mutating the dict while we're iterating here. Since the list of caches should be relatively small, work around this difference by just forcing a copy of the key list. diff -r 5c9936193145 -r 2244fb3eee49 mercurial/localrepo.py --- a/mercurial/localrepo.py Sun Mar 19 01:10:02 2017 -0400 +++ b/mercurial/localrepo.py Sun Mar 19 01:11:00 2017 -0400 @@ -1318,7 +1318,7 @@ redundant one doesn't). ''' unfiltered = self.unfiltered() # all file caches are stored unfiltered - for k in self._filecache.keys(): + for k in list(self._filecache.keys()): # dirstate is invalidated separately in invalidatedirstate() if k == 'dirstate': continue