Patchwork D6932: context: clarify the various mode in the filesremoved method

login
register
mail settings
Submitter phabricator
Date Oct. 1, 2019, 12:33 p.m.
Message ID <differential-rev-PHID-DREV-7dwkjdq3zxbjn7nvnjuc-req@mercurial-scm.org>
Download mbox | patch
Permalink /patch/41881/
State Superseded
Headers show

Comments

phabricator - Oct. 1, 2019, 12:33 p.m.
marmoute created this revision.
marmoute added reviewers: martinvonz, durin42.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  The previous code was compact but a bit dense. The new proposed code deal with
  each mode separately, there are some duplicated lines, but the meaning of each
  mode stand out.
  
  One of the benefit it to make it simpler to add further mode in the future.

REPOSITORY
  rHG Mercurial

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

AFFECTED FILES
  mercurial/context.py

CHANGE DETAILS




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

Patch

diff --git a/mercurial/context.py b/mercurial/context.py
--- a/mercurial/context.py
+++ b/mercurial/context.py
@@ -469,11 +469,16 @@ 
 
     def filesremoved(self):
         source = self._repo.ui.config('experimental', 'copies.read-from')
-        if (source == 'changeset-only' or
-            (source == 'compatibility' and
-             self._changeset.filesremoved is not None)):
-            return self._changeset.filesremoved or []
-        return scmutil.computechangesetfilesremoved(self)
+        filesremoved = self._changeset.filesremoved
+        if source == 'changeset-only':
+            if filesremoved is None:
+                filesremoved = []
+        elif source == 'compatibility':
+            if filesremoved is None:
+                filesremoved = scmutil.computechangesetfilesremoved(self)
+        else:
+            filesremoved = scmutil.computechangesetfilesremoved(self)
+        return filesremoved
 
     @propertycache
     def _copies(self):