# HG changeset patch # User Martin von Zweigbergk # Date 2019-05-10 18:03:54 # Node ID cdcebc897529520baca5ad88bd1294874c4e8064 # Parent 5265c7d47213bf11de44dd9f70e3bae2b40f8f96 overlaycontext: allow calling copydata() on clean context We should just report no copy if the context is clean. Differential Revision: https://phab.mercurial-scm.org/D6358 diff --git a/mercurial/context.py b/mercurial/context.py --- a/mercurial/context.py +++ b/mercurial/context.py @@ -1913,7 +1913,7 @@ class overlayworkingctx(committablectx): if self.isdirty(path): return self._cache[path]['copied'] else: - raise error.ProgrammingError('copydata() called on clean context') + return None def flags(self, path): if self.isdirty(path): 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 @@ -774,8 +774,14 @@ Test rebasing a commit with copy informa $ hg co -q 0 $ hg mv a b $ hg ci -qm 'rename a to b' - $ hg rebase -d 1 2>&1 | grep '** ProgrammingError' - ** ProgrammingError: copydata() called on clean context + $ hg rebase -d 1 + rebasing 2:b977edf6f839 "rename a to b" (tip) + merging a and b to b + saved backup bundle to $TESTTMP/rebase-rename/.hg/strip-backup/b977edf6f839-0864f570-rebase.hg + $ hg st --copies --change . + A b + a + R a $ cd .. Test rebasing when the file we are merging in destination is empty