Patchwork D6358: overlaycontext: allow calling copydata() one clean context

login
register
mail settings
Submitter phabricator
Date May 10, 2019, 9:03 p.m.
Message ID <differential-rev-PHID-DREV-3ck76myzkt36l2vwq5ov-req@phab.mercurial-scm.org>
Download mbox | patch
Permalink /patch/39998/
State Superseded
Headers show

Comments

phabricator - May 10, 2019, 9:03 p.m.
martinvonz created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  We should just report no copy if the context is clean.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D6358

AFFECTED FILES
  mercurial/context.py
  tests/test-rebase-inmemory.t

CHANGE DETAILS




To: martinvonz, #hg-reviewers
Cc: mercurial-devel

Patch

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 @@ 
   $ 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
diff --git a/mercurial/context.py b/mercurial/context.py
--- a/mercurial/context.py
+++ b/mercurial/context.py
@@ -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):