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