mercurial/metadata.py
changeset 45666 f6811e5bd994
parent 45663 cf474af69766
child 45667 0303fc1f43f8
--- 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
     """