--- a/mercurial/changegroup.py Fri Jan 22 12:08:20 2016 -0600
+++ b/mercurial/changegroup.py Wed Jan 27 10:24:25 2016 -0500
@@ -778,12 +778,15 @@
if 'treemanifest' in repo.requirements:
submfs = {'/': mdata}
for dn, bn in _moddirs(mfchangedfiles[x]):
- submf = submfs[dn]
- submf = submf._dirs[bn]
+ try:
+ submf = submfs[dn]
+ submf = submf._dirs[bn]
+ except KeyError:
+ continue # deleted directory, so nothing to send
submfs[submf.dir()] = submf
tmfclnodes = tmfnodes.setdefault(submf.dir(), {})
- tmfclnodes.setdefault(submf._node, clnode)
- if clrevorder[clnode] < clrevorder[fclnode]:
+ tmfclnode = tmfclnodes.setdefault(submf._node, clnode)
+ if clrevorder[clnode] < clrevorder[tmfclnode]:
tmfclnodes[n] = clnode
return clnode