D6905: upgrade: also register copied `.d` files to fncache

marmoute (Pierre-Yves David) phabricator at mercurial-scm.org
Fri Sep 27 20:23:10 UTC 2019


marmoute created this revision.
Herald added subscribers: mercurial-devel, mjpieters.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  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.

REPOSITORY
  rHG Mercurial

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

AFFECTED FILES
  mercurial/upgrade.py
  tests/test-upgrade-repo.t

CHANGE DETAILS

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
 
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()



To: marmoute, #hg-reviewers
Cc: mjpieters, mercurial-devel


More information about the Mercurial-devel mailing list