diff -r c38e9248f531 -r 53fe5a1a92bd hgext/narrow/narrowmerge.py --- a/hgext/narrow/narrowmerge.py Tue Feb 13 18:00:59 2018 -0500 +++ b/hgext/narrow/narrowmerge.py Tue Feb 13 13:37:43 2018 -0500 @@ -28,7 +28,9 @@ nooptypes = set(['k']) # TODO: handle with nonconflicttypes nonconflicttypes = set('a am c cm f g r e'.split()) narrowmatch = repo.narrowmatch() - for f, action in actions.items(): + # We mutate the items in the dict during iteration, so iterate + # over a copy. + for f, action in list(actions.items()): if narrowmatch(f): pass elif not branchmerge: