# HG changeset patch
# User Pierre-Yves David <pierre-yves.david@octobus.net>
# Date 1569607193 -7200
#      Fri Sep 27 19:59:53 2019 +0200
# Node ID 3737499829246a878b66495908f988c5e7bdc061
# Parent  675a925b556d873bbf249d22dbdeeca409ee213d
upgrade: also register copied `.d` files to fncache

Oops, we forgot to register data file when blanky copying revlog. Now that we
are actually copying these `.d` files, we should also register them.

Differential Revision: https://phab.mercurial-scm.org/D6905

diff --git a/mercurial/upgrade.py b/mercurial/upgrade.py
--- a/mercurial/upgrade.py
+++ b/mercurial/upgrade.py
@@ -561,12 +561,15 @@
         pass # create all the directories
 
     util.copyfile(oldindex, newindex)
-    if oldrl.opener.exists(oldrl.datafile):
+    copydata = oldrl.opener.exists(oldrl.datafile)
+    if copydata:
         util.copyfile(olddata, newdata)
 
     if not (unencodedname.endswith('00changelog.i')
             or unencodedname.endswith('00manifest.i')):
         destrepo.svfs.fncache.add(unencodedname)
+        if copydata:
+            destrepo.svfs.fncache.add(unencodedname[:-2] + '.d')
 
 UPGRADE_CHANGELOG = object()
 UPGRADE_MANIFEST = object()
diff --git a/tests/test-upgrade-repo.t b/tests/test-upgrade-repo.t
--- a/tests/test-upgrade-repo.t
+++ b/tests/test-upgrade-repo.t
@@ -604,10 +604,7 @@
   checking manifests
   crosschecking files in changesets and manifests
   checking files
-   warning: revlog 'data/f2.d' not in fncache!
   checked 3 changesets with 3 changes to 3 files
-  1 warnings encountered!
-  hint: run "hg debugrebuildfncache" to recover from corrupt fncache
 
 Check we can select negatively
 
@@ -699,10 +696,7 @@
   checking manifests
   crosschecking files in changesets and manifests
   checking files
-   warning: revlog 'data/f2.d' not in fncache!
   checked 3 changesets with 3 changes to 3 files
-  1 warnings encountered!
-  hint: run "hg debugrebuildfncache" to recover from corrupt fncache
 
 Check that we can select filelog only