# HG changeset patch # User Pierre-Yves David # Date 2019-09-27 17:59:53 # 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 @@ def _copyrevlog(tr, destrepo, oldrl, une 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 @@ Check that the repo still works fine 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 @@ Check that we can select changelog only 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