--- a/mercurial/metadata.py Wed Sep 30 09:21:33 2020 +0200
+++ b/mercurial/metadata.py Tue Sep 29 22:38:08 2020 +0200
@@ -226,6 +226,10 @@
def compute_all_files_changes(ctx):
"""compute the files changed by a revision"""
+ p1 = ctx.p1()
+ p2 = ctx.p2()
+ if p1.rev() == node.nullrev and p2.rev() == node.nullrev:
+ return _process_root(ctx)
filescopies = computechangesetcopies(ctx)
filesadded = computechangesetfilesadded(ctx)
filesremoved = computechangesetfilesremoved(ctx)
@@ -240,6 +244,17 @@
return files
+def _process_root(ctx):
+ """compute the appropriate changed files for a changeset with no parents
+ """
+ # Simple, there was nothing before it, so everything is added.
+ md = ChangingFiles()
+ manifest = ctx.manifest()
+ for filename in manifest:
+ md.mark_added(filename)
+ return md
+
+
def computechangesetfilesadded(ctx):
"""return the list of files added in a changeset
"""