diff --git a/mercurial/context.py b/mercurial/context.py --- a/mercurial/context.py +++ b/mercurial/context.py @@ -2159,7 +2159,9 @@ # the file is marked as existing. if exists and data is None: oldentry = self._cache.get(path) or {} - data = oldentry.get('data') or self._wrappedctx[path].data() + data = oldentry.get('data') + if data is None: + data = self._wrappedctx[path].data() self._cache[path] = { 'exists': exists, diff --git a/tests/test-rebase-inmemory.t b/tests/test-rebase-inmemory.t --- a/tests/test-rebase-inmemory.t +++ b/tests/test-rebase-inmemory.t @@ -795,12 +795,10 @@ $ hg co -q 0 $ hg mv a b $ hg ci -qm 'rename a to b' -BROKEN: shouldn't crash $ hg rebase -d 1 rebasing 2:b977edf6f839 "rename a to b" (tip) merging a and b to b - abort: b@c71e275f666f: not found in manifest! - [255] + saved backup bundle to $TESTTMP/rebase-rename-empty/.hg/strip-backup/b977edf6f839-0864f570-rebase.hg $ hg st --copies --change . A b a