mercurial/changegroup.py
branchstable
changeset 27946 ca8d2b73155d
parent 27931 1289a122cf3f
child 27953 88609cfa3745
--- 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