changectx: extract explicit computechangesetfilesadded method from context
Right now, the logic around changeset centric added files data are buried into
the "changectx" code. We extract this code in a dedicated method (in the scmutil
module) for clarity. This clarity will help to explicitly compute and caches
these data in the future.
--- a/mercurial/context.py Tue Aug 06 03:17:40 2019 +0200
+++ b/mercurial/context.py Wed Jun 12 13:42:22 2019 +0100
@@ -459,12 +459,7 @@
(source == 'compatibility' and
self._changeset.filesadded is not None)):
return self._changeset.filesadded or []
-
- added = []
- for f in self.files():
- if not any(f in p for p in self.parents()):
- added.append(f)
- return added
+ return scmutil.computechangesetfilesadded(self)
def filesremoved(self):
source = self._repo.ui.config('experimental', 'copies.read-from')
if (source == 'changeset-only' or
--- a/mercurial/scmutil.py Tue Aug 06 03:17:40 2019 +0200
+++ b/mercurial/scmutil.py Wed Jun 12 13:42:22 2019 +0100
@@ -1984,3 +1984,12 @@
"ancestors(head() and not bookmark(%s)) - "
"ancestors(bookmark() and not bookmark(%s))",
mark, mark, mark)
+
+def computechangesetfilesadded(ctx):
+ """return the list of files added in a changeset
+ """
+ added = []
+ for f in ctx.files():
+ if not any(f in p for p in ctx.parents()):
+ added.append(f)
+ return added