upgrade: create the correct destination directory for copies revlogs
The encoding in vfs mess up with the directory we are trying to create manually.
We could duplicate the advanced logic some more, but that seems ill fated.
Instead, we let the vfs deal with directory creation.
We update the test to contains a name affected by encoding.
Differential Revision: https://phab.mercurial-scm.org/D6902
--- a/mercurial/upgrade.py Fri Sep 27 13:16:37 2019 +0200
+++ b/mercurial/upgrade.py Fri Sep 27 21:14:03 2019 +0200
@@ -557,8 +557,8 @@
olddata = oldvfs.join(oldrl.datafile)
newdata = newvfs.join(newrl.datafile)
- newdir = newvfs.dirname(newrl.indexfile)
- newvfs.makedirs(newdir)
+ with newvfs(newrl.indexfile, 'w'):
+ pass # create all the directories
util.copyfile(oldindex, newindex)
if oldrl.opener.exists(olddata):
--- a/tests/test-upgrade-repo.t Fri Sep 27 13:16:37 2019 +0200
+++ b/tests/test-upgrade-repo.t Fri Sep 27 21:14:03 2019 +0200
@@ -381,7 +381,8 @@
$ cd upgradegd
$ touch f0
$ hg -q commit -A -m initial
- $ touch f1
+ $ mkdir FooBarDirectory.d
+ $ touch FooBarDirectory.d/f1
$ hg -q commit -A -m 'add f1'
$ hg -q up -r 0
$ touch f2
@@ -402,12 +403,12 @@
creating temporary repository to stage migrated data: $TESTTMP/upgradegd/.hg/upgrade.* (glob)
(it is safe to interrupt this process any time before data migration completes)
migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog)
- migrating 917 bytes in store; 401 bytes tracked data
+ migrating 953 bytes in store; 437 bytes tracked data
migrating 3 filelogs containing 3 revisions (192 bytes in store; 0 bytes tracked data)
finished migrating 3 filelog revisions across 3 filelogs; change in size: 0 bytes
- migrating 1 manifests containing 3 revisions (349 bytes in store; 220 bytes tracked data)
+ migrating 1 manifests containing 3 revisions (367 bytes in store; 238 bytes tracked data)
finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes
- migrating changelog containing 3 revisions (376 bytes in store; 181 bytes tracked data)
+ migrating changelog containing 3 revisions (394 bytes in store; 199 bytes tracked data)
finished migrating 3 changelog revisions; change in size: 0 bytes
finished migrating 9 total revisions; total change in store size: 0 bytes
copying phaseroots
@@ -498,12 +499,12 @@
creating temporary repository to stage migrated data: $TESTTMP/upgradegd/.hg/upgrade.* (glob)
(it is safe to interrupt this process any time before data migration completes)
migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog)
- migrating 917 bytes in store; 401 bytes tracked data
+ migrating 953 bytes in store; 437 bytes tracked data
migrating 3 filelogs containing 3 revisions (192 bytes in store; 0 bytes tracked data)
finished migrating 3 filelog revisions across 3 filelogs; change in size: 0 bytes
- migrating 1 manifests containing 3 revisions (349 bytes in store; 220 bytes tracked data)
+ migrating 1 manifests containing 3 revisions (367 bytes in store; 238 bytes tracked data)
finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes
- migrating changelog containing 3 revisions (376 bytes in store; 181 bytes tracked data)
+ migrating changelog containing 3 revisions (394 bytes in store; 199 bytes tracked data)
finished migrating 3 changelog revisions; change in size: 0 bytes
finished migrating 9 total revisions; total change in store size: 0 bytes
copying phaseroots
@@ -535,16 +536,16 @@
creating temporary repository to stage migrated data: $TESTTMP/upgradegd/.hg/upgrade.* (glob)
(it is safe to interrupt this process any time before data migration completes)
migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog)
- migrating 917 bytes in store; 401 bytes tracked data
+ migrating 953 bytes in store; 437 bytes tracked data
migrating 3 filelogs containing 3 revisions (192 bytes in store; 0 bytes tracked data)
+ blindly copying data/FooBarDirectory.d/f1.i containing 1 revisions
blindly copying data/f0.i containing 1 revisions
- blindly copying data/f1.i containing 1 revisions
blindly copying data/f2.i containing 1 revisions
finished migrating 3 filelog revisions across 3 filelogs; change in size: 0 bytes
- migrating 1 manifests containing 3 revisions (349 bytes in store; 220 bytes tracked data)
+ migrating 1 manifests containing 3 revisions (367 bytes in store; 238 bytes tracked data)
cloning 3 revisions from 00manifest.i
finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes
- migrating changelog containing 3 revisions (376 bytes in store; 181 bytes tracked data)
+ migrating changelog containing 3 revisions (394 bytes in store; 199 bytes tracked data)
blindly copying 00changelog.i containing 3 revisions
finished migrating 3 changelog revisions; change in size: 0 bytes
finished migrating 9 total revisions; total change in store size: 0 bytes
@@ -570,7 +571,7 @@
| summary: add f2
|
|
- | o changeset: 1:da8c0fc4833c
+ | o changeset: 1:2029ce2354e2
|/ user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: add f1
@@ -606,16 +607,16 @@
creating temporary repository to stage migrated data: $TESTTMP/upgradegd/.hg/upgrade.* (glob)
(it is safe to interrupt this process any time before data migration completes)
migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog)
- migrating 917 bytes in store; 401 bytes tracked data
+ migrating 953 bytes in store; 437 bytes tracked data
migrating 3 filelogs containing 3 revisions (192 bytes in store; 0 bytes tracked data)
+ cloning 1 revisions from data/FooBarDirectory.d/f1.i
cloning 1 revisions from data/f0.i
- cloning 1 revisions from data/f1.i
cloning 1 revisions from data/f2.i
finished migrating 3 filelog revisions across 3 filelogs; change in size: 0 bytes
- migrating 1 manifests containing 3 revisions (349 bytes in store; 220 bytes tracked data)
+ migrating 1 manifests containing 3 revisions (367 bytes in store; 238 bytes tracked data)
blindly copying 00manifest.i containing 3 revisions
finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes
- migrating changelog containing 3 revisions (376 bytes in store; 181 bytes tracked data)
+ migrating changelog containing 3 revisions (394 bytes in store; 199 bytes tracked data)
cloning 3 revisions from 00changelog.i
finished migrating 3 changelog revisions; change in size: 0 bytes
finished migrating 9 total revisions; total change in store size: 0 bytes
@@ -652,16 +653,16 @@
creating temporary repository to stage migrated data: $TESTTMP/upgradegd/.hg/upgrade.* (glob)
(it is safe to interrupt this process any time before data migration completes)
migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog)
- migrating 917 bytes in store; 401 bytes tracked data
+ migrating 953 bytes in store; 437 bytes tracked data
migrating 3 filelogs containing 3 revisions (192 bytes in store; 0 bytes tracked data)
+ blindly copying data/FooBarDirectory.d/f1.i containing 1 revisions
blindly copying data/f0.i containing 1 revisions
- blindly copying data/f1.i containing 1 revisions
blindly copying data/f2.i containing 1 revisions
finished migrating 3 filelog revisions across 3 filelogs; change in size: 0 bytes
- migrating 1 manifests containing 3 revisions (349 bytes in store; 220 bytes tracked data)
+ migrating 1 manifests containing 3 revisions (367 bytes in store; 238 bytes tracked data)
blindly copying 00manifest.i containing 3 revisions
finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes
- migrating changelog containing 3 revisions (376 bytes in store; 181 bytes tracked data)
+ migrating changelog containing 3 revisions (394 bytes in store; 199 bytes tracked data)
cloning 3 revisions from 00changelog.i
finished migrating 3 changelog revisions; change in size: 0 bytes
finished migrating 9 total revisions; total change in store size: 0 bytes
@@ -698,16 +699,16 @@
creating temporary repository to stage migrated data: $TESTTMP/upgradegd/.hg/upgrade.* (glob)
(it is safe to interrupt this process any time before data migration completes)
migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog)
- migrating 917 bytes in store; 401 bytes tracked data
+ migrating 953 bytes in store; 437 bytes tracked data
migrating 3 filelogs containing 3 revisions (192 bytes in store; 0 bytes tracked data)
+ cloning 1 revisions from data/FooBarDirectory.d/f1.i
cloning 1 revisions from data/f0.i
- cloning 1 revisions from data/f1.i
cloning 1 revisions from data/f2.i
finished migrating 3 filelog revisions across 3 filelogs; change in size: 0 bytes
- migrating 1 manifests containing 3 revisions (349 bytes in store; 220 bytes tracked data)
+ migrating 1 manifests containing 3 revisions (367 bytes in store; 238 bytes tracked data)
blindly copying 00manifest.i containing 3 revisions
finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes
- migrating changelog containing 3 revisions (376 bytes in store; 181 bytes tracked data)
+ migrating changelog containing 3 revisions (394 bytes in store; 199 bytes tracked data)
blindly copying 00changelog.i containing 3 revisions
finished migrating 3 changelog revisions; change in size: 0 bytes
finished migrating 9 total revisions; total change in store size: 0 bytes
@@ -749,16 +750,16 @@
creating temporary repository to stage migrated data: $TESTTMP/upgradegd/.hg/upgrade.* (glob)
(it is safe to interrupt this process any time before data migration completes)
migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog)
- migrating 917 bytes in store; 401 bytes tracked data
+ migrating 953 bytes in store; 437 bytes tracked data
migrating 3 filelogs containing 3 revisions (192 bytes in store; 0 bytes tracked data)
+ cloning 1 revisions from data/FooBarDirectory.d/f1.i
cloning 1 revisions from data/f0.i
- cloning 1 revisions from data/f1.i
cloning 1 revisions from data/f2.i
finished migrating 3 filelog revisions across 3 filelogs; change in size: 0 bytes
- migrating 1 manifests containing 3 revisions (349 bytes in store; 220 bytes tracked data)
+ migrating 1 manifests containing 3 revisions (367 bytes in store; 238 bytes tracked data)
cloning 3 revisions from 00manifest.i
finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes
- migrating changelog containing 3 revisions (376 bytes in store; 181 bytes tracked data)
+ migrating changelog containing 3 revisions (394 bytes in store; 199 bytes tracked data)
cloning 3 revisions from 00changelog.i
finished migrating 3 changelog revisions; change in size: 0 bytes
finished migrating 9 total revisions; total change in store size: 0 bytes
@@ -801,16 +802,16 @@
creating temporary repository to stage migrated data: $TESTTMP/upgradegd/.hg/upgrade.* (glob)
(it is safe to interrupt this process any time before data migration completes)
migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog)
- migrating 917 bytes in store; 401 bytes tracked data
+ migrating 953 bytes in store; 437 bytes tracked data
migrating 3 filelogs containing 3 revisions (192 bytes in store; 0 bytes tracked data)
+ cloning 1 revisions from data/FooBarDirectory.d/f1.i
cloning 1 revisions from data/f0.i
- cloning 1 revisions from data/f1.i
cloning 1 revisions from data/f2.i
finished migrating 3 filelog revisions across 3 filelogs; change in size: 0 bytes
- migrating 1 manifests containing 3 revisions (349 bytes in store; 220 bytes tracked data)
+ migrating 1 manifests containing 3 revisions (367 bytes in store; 238 bytes tracked data)
cloning 3 revisions from 00manifest.i
finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes
- migrating changelog containing 3 revisions (376 bytes in store; 181 bytes tracked data)
+ migrating changelog containing 3 revisions (394 bytes in store; 199 bytes tracked data)
cloning 3 revisions from 00changelog.i
finished migrating 3 changelog revisions; change in size: 0 bytes
finished migrating 9 total revisions; total change in store size: 0 bytes