diff -r a8edcb9c1199 -r db03ed8cbfa3 mercurial/context.py --- a/mercurial/context.py Fri Dec 12 15:53:17 2014 -0500 +++ b/mercurial/context.py Mon Dec 15 15:00:54 2014 -0500 @@ -1625,9 +1625,10 @@ # keep this simple for now; just worry about p1 pctx = self._parents[0] + pman = pctx.manifest() man = pctx.manifest().copy() - for f, fnode in man.iteritems(): + for f, fnode in pman.iteritems(): p1node = nullid p2node = nullid p = pctx[f].parents() # if file isn't in pctx, check p2? @@ -1635,7 +1636,12 @@ p1node = p[0].node() if len(p) > 1: p2node = p[1].node() - man[f] = revlog.hash(self[f].data(), p1node, p2node) + fctx = self[f] + if fctx is None: + # removed file + del man[f] + else: + man[f] = revlog.hash(fctx.data(), p1node, p2node) return man