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
--- a/mercurial/context.py Fri May 10 10:23:08 2019 -0700
+++ b/mercurial/context.py Fri May 10 11:03:54 2019 -0700
@@ -1913,7 +1913,7 @@
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):
--- a/tests/test-rebase-inmemory.t Fri May 10 10:23:08 2019 -0700
+++ b/tests/test-rebase-inmemory.t Fri May 10 11:03:54 2019 -0700
@@ -774,8 +774,14 @@
$ 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