Show More
@@ -807,14 +807,14 b' def _clonerevlogs(' | |||||
807 | if not revcount: |
|
807 | if not revcount: | |
808 | return |
|
808 | return | |
809 |
|
809 | |||
810 |
ui. |
|
810 | ui.status( | |
811 | _( |
|
811 | _( | |
812 | b'migrating %d total revisions (%d in filelogs, %d in manifests, ' |
|
812 | b'migrating %d total revisions (%d in filelogs, %d in manifests, ' | |
813 | b'%d in changelog)\n' |
|
813 | b'%d in changelog)\n' | |
814 | ) |
|
814 | ) | |
815 | % (revcount, frevcount, mrevcount, crevcount) |
|
815 | % (revcount, frevcount, mrevcount, crevcount) | |
816 | ) |
|
816 | ) | |
817 |
ui. |
|
817 | ui.status( | |
818 | _(b'migrating %s in store; %s tracked data\n') |
|
818 | _(b'migrating %s in store; %s tracked data\n') | |
819 | % ((util.bytecount(srcsize), util.bytecount(srcrawsize))) |
|
819 | % ((util.bytecount(srcsize), util.bytecount(srcrawsize))) | |
820 | ) |
|
820 | ) | |
@@ -837,7 +837,7 b' def _clonerevlogs(' | |||||
837 | oldrl = _revlogfrompath(srcrepo, unencoded) |
|
837 | oldrl = _revlogfrompath(srcrepo, unencoded) | |
838 |
|
838 | |||
839 | if isinstance(oldrl, changelog.changelog) and b'c' not in seen: |
|
839 | if isinstance(oldrl, changelog.changelog) and b'c' not in seen: | |
840 |
ui. |
|
840 | ui.status( | |
841 | _( |
|
841 | _( | |
842 | b'finished migrating %d manifest revisions across %d ' |
|
842 | b'finished migrating %d manifest revisions across %d ' | |
843 | b'manifests; change in size: %s\n' |
|
843 | b'manifests; change in size: %s\n' | |
@@ -845,7 +845,7 b' def _clonerevlogs(' | |||||
845 | % (mrevcount, mcount, util.bytecount(mdstsize - msrcsize)) |
|
845 | % (mrevcount, mcount, util.bytecount(mdstsize - msrcsize)) | |
846 | ) |
|
846 | ) | |
847 |
|
847 | |||
848 |
ui. |
|
848 | ui.status( | |
849 | _( |
|
849 | _( | |
850 | b'migrating changelog containing %d revisions ' |
|
850 | b'migrating changelog containing %d revisions ' | |
851 | b'(%s in store; %s tracked data)\n' |
|
851 | b'(%s in store; %s tracked data)\n' | |
@@ -861,7 +861,7 b' def _clonerevlogs(' | |||||
861 | _(b'changelog revisions'), total=crevcount |
|
861 | _(b'changelog revisions'), total=crevcount | |
862 | ) |
|
862 | ) | |
863 | elif isinstance(oldrl, manifest.manifestrevlog) and b'm' not in seen: |
|
863 | elif isinstance(oldrl, manifest.manifestrevlog) and b'm' not in seen: | |
864 |
ui. |
|
864 | ui.status( | |
865 | _( |
|
865 | _( | |
866 | b'finished migrating %d filelog revisions across %d ' |
|
866 | b'finished migrating %d filelog revisions across %d ' | |
867 | b'filelogs; change in size: %s\n' |
|
867 | b'filelogs; change in size: %s\n' | |
@@ -869,7 +869,7 b' def _clonerevlogs(' | |||||
869 | % (frevcount, fcount, util.bytecount(fdstsize - fsrcsize)) |
|
869 | % (frevcount, fcount, util.bytecount(fdstsize - fsrcsize)) | |
870 | ) |
|
870 | ) | |
871 |
|
871 | |||
872 |
ui. |
|
872 | ui.status( | |
873 | _( |
|
873 | _( | |
874 | b'migrating %d manifests containing %d revisions ' |
|
874 | b'migrating %d manifests containing %d revisions ' | |
875 | b'(%s in store; %s tracked data)\n' |
|
875 | b'(%s in store; %s tracked data)\n' | |
@@ -888,7 +888,7 b' def _clonerevlogs(' | |||||
888 | _(b'manifest revisions'), total=mrevcount |
|
888 | _(b'manifest revisions'), total=mrevcount | |
889 | ) |
|
889 | ) | |
890 | elif b'f' not in seen: |
|
890 | elif b'f' not in seen: | |
891 |
ui. |
|
891 | ui.status( | |
892 | _( |
|
892 | _( | |
893 | b'migrating %d filelogs containing %d revisions ' |
|
893 | b'migrating %d filelogs containing %d revisions ' | |
894 | b'(%s in store; %s tracked data)\n' |
|
894 | b'(%s in store; %s tracked data)\n' | |
@@ -941,7 +941,7 b' def _clonerevlogs(' | |||||
941 |
|
941 | |||
942 | progress.complete() |
|
942 | progress.complete() | |
943 |
|
943 | |||
944 |
ui. |
|
944 | ui.status( | |
945 | _( |
|
945 | _( | |
946 | b'finished migrating %d changelog revisions; change in size: ' |
|
946 | b'finished migrating %d changelog revisions; change in size: ' | |
947 | b'%s\n' |
|
947 | b'%s\n' | |
@@ -949,7 +949,7 b' def _clonerevlogs(' | |||||
949 | % (crevcount, util.bytecount(cdstsize - csrcsize)) |
|
949 | % (crevcount, util.bytecount(cdstsize - csrcsize)) | |
950 | ) |
|
950 | ) | |
951 |
|
951 | |||
952 |
ui. |
|
952 | ui.status( | |
953 | _( |
|
953 | _( | |
954 | b'finished migrating %d total revisions; total change in store ' |
|
954 | b'finished migrating %d total revisions; total change in store ' | |
955 | b'size: %s\n' |
|
955 | b'size: %s\n' | |
@@ -1013,7 +1013,7 b' def _upgraderepo(' | |||||
1013 | assert srcrepo.currentwlock() |
|
1013 | assert srcrepo.currentwlock() | |
1014 | assert dstrepo.currentwlock() |
|
1014 | assert dstrepo.currentwlock() | |
1015 |
|
1015 | |||
1016 |
ui. |
|
1016 | ui.status( | |
1017 | _( |
|
1017 | _( | |
1018 | b'(it is safe to interrupt this process any time before ' |
|
1018 | b'(it is safe to interrupt this process any time before ' | |
1019 | b'data migration completes)\n' |
|
1019 | b'data migration completes)\n' | |
@@ -1048,14 +1048,14 b' def _upgraderepo(' | |||||
1048 | if not _filterstorefile(srcrepo, dstrepo, requirements, p, kind, st): |
|
1048 | if not _filterstorefile(srcrepo, dstrepo, requirements, p, kind, st): | |
1049 | continue |
|
1049 | continue | |
1050 |
|
1050 | |||
1051 |
srcrepo.ui. |
|
1051 | srcrepo.ui.status(_(b'copying %s\n') % p) | |
1052 | src = srcrepo.store.rawvfs.join(p) |
|
1052 | src = srcrepo.store.rawvfs.join(p) | |
1053 | dst = dstrepo.store.rawvfs.join(p) |
|
1053 | dst = dstrepo.store.rawvfs.join(p) | |
1054 | util.copyfile(src, dst, copystat=True) |
|
1054 | util.copyfile(src, dst, copystat=True) | |
1055 |
|
1055 | |||
1056 | _finishdatamigration(ui, srcrepo, dstrepo, requirements) |
|
1056 | _finishdatamigration(ui, srcrepo, dstrepo, requirements) | |
1057 |
|
1057 | |||
1058 |
ui. |
|
1058 | ui.status(_(b'data fully migrated to temporary repository\n')) | |
1059 |
|
1059 | |||
1060 | backuppath = pycompat.mkdtemp(prefix=b'upgradebackup.', dir=srcrepo.path) |
|
1060 | backuppath = pycompat.mkdtemp(prefix=b'upgradebackup.', dir=srcrepo.path) | |
1061 | backupvfs = vfsmod.vfs(backuppath) |
|
1061 | backupvfs = vfsmod.vfs(backuppath) | |
@@ -1067,7 +1067,7 b' def _upgraderepo(' | |||||
1067 | # as a mechanism to lock out new clients during the data swap. This is |
|
1067 | # as a mechanism to lock out new clients during the data swap. This is | |
1068 | # better than allowing a client to continue while the repository is in |
|
1068 | # better than allowing a client to continue while the repository is in | |
1069 | # an inconsistent state. |
|
1069 | # an inconsistent state. | |
1070 |
ui. |
|
1070 | ui.status( | |
1071 | _( |
|
1071 | _( | |
1072 | b'marking source repository as being upgraded; clients will be ' |
|
1072 | b'marking source repository as being upgraded; clients will be ' | |
1073 | b'unable to read from repository\n' |
|
1073 | b'unable to read from repository\n' | |
@@ -1077,18 +1077,18 b' def _upgraderepo(' | |||||
1077 | srcrepo.vfs, srcrepo.requirements | {b'upgradeinprogress'} |
|
1077 | srcrepo.vfs, srcrepo.requirements | {b'upgradeinprogress'} | |
1078 | ) |
|
1078 | ) | |
1079 |
|
1079 | |||
1080 |
ui. |
|
1080 | ui.status(_(b'starting in-place swap of repository data\n')) | |
1081 |
ui. |
|
1081 | ui.status(_(b'replaced files will be backed up at %s\n') % backuppath) | |
1082 |
|
1082 | |||
1083 | # Now swap in the new store directory. Doing it as a rename should make |
|
1083 | # Now swap in the new store directory. Doing it as a rename should make | |
1084 | # the operation nearly instantaneous and atomic (at least in well-behaved |
|
1084 | # the operation nearly instantaneous and atomic (at least in well-behaved | |
1085 | # environments). |
|
1085 | # environments). | |
1086 |
ui. |
|
1086 | ui.status(_(b'replacing store...\n')) | |
1087 | tstart = util.timer() |
|
1087 | tstart = util.timer() | |
1088 | util.rename(srcrepo.spath, backupvfs.join(b'store')) |
|
1088 | util.rename(srcrepo.spath, backupvfs.join(b'store')) | |
1089 | util.rename(dstrepo.spath, srcrepo.spath) |
|
1089 | util.rename(dstrepo.spath, srcrepo.spath) | |
1090 | elapsed = util.timer() - tstart |
|
1090 | elapsed = util.timer() - tstart | |
1091 |
ui. |
|
1091 | ui.status( | |
1092 | _( |
|
1092 | _( | |
1093 | b'store replacement complete; repository was inconsistent for ' |
|
1093 | b'store replacement complete; repository was inconsistent for ' | |
1094 | b'%0.1fs\n' |
|
1094 | b'%0.1fs\n' | |
@@ -1098,7 +1098,7 b' def _upgraderepo(' | |||||
1098 |
|
1098 | |||
1099 | # We first write the requirements file. Any new requirements will lock |
|
1099 | # We first write the requirements file. Any new requirements will lock | |
1100 | # out legacy clients. |
|
1100 | # out legacy clients. | |
1101 |
ui. |
|
1101 | ui.status( | |
1102 | _( |
|
1102 | _( | |
1103 | b'finalizing requirements file and making repository readable ' |
|
1103 | b'finalizing requirements file and making repository readable ' | |
1104 | b'again\n' |
|
1104 | b'again\n' | |
@@ -1287,7 +1287,7 b' def upgraderepo(' | |||||
1287 |
|
1287 | |||
1288 | def printupgradeactions(): |
|
1288 | def printupgradeactions(): | |
1289 | for a in actions: |
|
1289 | for a in actions: | |
1290 |
ui. |
|
1290 | ui.status(b'%s\n %s\n\n' % (a.name, a.upgrademessage)) | |
1291 |
|
1291 | |||
1292 | if not run: |
|
1292 | if not run: | |
1293 | fromconfig = [] |
|
1293 | fromconfig = [] | |
@@ -1302,35 +1302,35 b' def upgraderepo(' | |||||
1302 | if fromconfig or onlydefault: |
|
1302 | if fromconfig or onlydefault: | |
1303 |
|
1303 | |||
1304 | if fromconfig: |
|
1304 | if fromconfig: | |
1305 |
ui. |
|
1305 | ui.status( | |
1306 | _( |
|
1306 | _( | |
1307 | b'repository lacks features recommended by ' |
|
1307 | b'repository lacks features recommended by ' | |
1308 | b'current config options:\n\n' |
|
1308 | b'current config options:\n\n' | |
1309 | ) |
|
1309 | ) | |
1310 | ) |
|
1310 | ) | |
1311 | for i in fromconfig: |
|
1311 | for i in fromconfig: | |
1312 |
ui. |
|
1312 | ui.status(b'%s\n %s\n\n' % (i.name, i.description)) | |
1313 |
|
1313 | |||
1314 | if onlydefault: |
|
1314 | if onlydefault: | |
1315 |
ui. |
|
1315 | ui.status( | |
1316 | _( |
|
1316 | _( | |
1317 | b'repository lacks features used by the default ' |
|
1317 | b'repository lacks features used by the default ' | |
1318 | b'config options:\n\n' |
|
1318 | b'config options:\n\n' | |
1319 | ) |
|
1319 | ) | |
1320 | ) |
|
1320 | ) | |
1321 | for i in onlydefault: |
|
1321 | for i in onlydefault: | |
1322 |
ui. |
|
1322 | ui.status(b'%s\n %s\n\n' % (i.name, i.description)) | |
1323 |
|
1323 | |||
1324 |
ui. |
|
1324 | ui.status(b'\n') | |
1325 | else: |
|
1325 | else: | |
1326 |
ui. |
|
1326 | ui.status( | |
1327 | _( |
|
1327 | _( | |
1328 | b'(no feature deficiencies found in existing ' |
|
1328 | b'(no feature deficiencies found in existing ' | |
1329 | b'repository)\n' |
|
1329 | b'repository)\n' | |
1330 | ) |
|
1330 | ) | |
1331 | ) |
|
1331 | ) | |
1332 |
|
1332 | |||
1333 |
ui. |
|
1333 | ui.status( | |
1334 | _( |
|
1334 | _( | |
1335 | b'performing an upgrade with "--run" will make the following ' |
|
1335 | b'performing an upgrade with "--run" will make the following ' | |
1336 | b'changes:\n\n' |
|
1336 | b'changes:\n\n' | |
@@ -1344,14 +1344,14 b' def upgraderepo(' | |||||
1344 | unusedoptimize = [i for i in alloptimizations if i not in actions] |
|
1344 | unusedoptimize = [i for i in alloptimizations if i not in actions] | |
1345 |
|
1345 | |||
1346 | if unusedoptimize: |
|
1346 | if unusedoptimize: | |
1347 |
ui. |
|
1347 | ui.status( | |
1348 | _( |
|
1348 | _( | |
1349 | b'additional optimizations are available by specifying ' |
|
1349 | b'additional optimizations are available by specifying ' | |
1350 | b'"--optimize <name>":\n\n' |
|
1350 | b'"--optimize <name>":\n\n' | |
1351 | ) |
|
1351 | ) | |
1352 | ) |
|
1352 | ) | |
1353 | for i in unusedoptimize: |
|
1353 | for i in unusedoptimize: | |
1354 |
ui. |
|
1354 | ui.status(_(b'%s\n %s\n\n') % (i.name, i.description)) | |
1355 | return |
|
1355 | return | |
1356 |
|
1356 | |||
1357 | # Else we're in the run=true case. |
|
1357 | # Else we're in the run=true case. | |
@@ -1362,9 +1362,9 b' def upgraderepo(' | |||||
1362 |
|
1362 | |||
1363 | upgradeactions = [a.name for a in actions] |
|
1363 | upgradeactions = [a.name for a in actions] | |
1364 |
|
1364 | |||
1365 |
ui. |
|
1365 | ui.status(_(b'beginning upgrade...\n')) | |
1366 | with repo.wlock(), repo.lock(): |
|
1366 | with repo.wlock(), repo.lock(): | |
1367 |
ui. |
|
1367 | ui.status(_(b'repository locked and read-only\n')) | |
1368 | # Our strategy for upgrading the repository is to create a new, |
|
1368 | # Our strategy for upgrading the repository is to create a new, | |
1369 | # temporary repository, write data to it, then do a swap of the |
|
1369 | # temporary repository, write data to it, then do a swap of the | |
1370 | # data. There are less heavyweight ways to do this, but it is easier |
|
1370 | # data. There are less heavyweight ways to do this, but it is easier | |
@@ -1373,7 +1373,7 b' def upgraderepo(' | |||||
1373 | tmppath = pycompat.mkdtemp(prefix=b'upgrade.', dir=repo.path) |
|
1373 | tmppath = pycompat.mkdtemp(prefix=b'upgrade.', dir=repo.path) | |
1374 | backuppath = None |
|
1374 | backuppath = None | |
1375 | try: |
|
1375 | try: | |
1376 |
ui. |
|
1376 | ui.status( | |
1377 | _( |
|
1377 | _( | |
1378 | b'creating temporary repository to stage migrated ' |
|
1378 | b'creating temporary repository to stage migrated ' | |
1379 | b'data: %s\n' |
|
1379 | b'data: %s\n' | |
@@ -1390,15 +1390,17 b' def upgraderepo(' | |||||
1390 | ui, repo, dstrepo, newreqs, upgradeactions, revlogs=revlogs |
|
1390 | ui, repo, dstrepo, newreqs, upgradeactions, revlogs=revlogs | |
1391 | ) |
|
1391 | ) | |
1392 | if not (backup or backuppath is None): |
|
1392 | if not (backup or backuppath is None): | |
1393 | ui.write(_(b'removing old repository content%s\n') % backuppath) |
|
1393 | ui.status( | |
|
1394 | _(b'removing old repository content%s\n') % backuppath | |||
|
1395 | ) | |||
1394 | repo.vfs.rmtree(backuppath, forcibly=True) |
|
1396 | repo.vfs.rmtree(backuppath, forcibly=True) | |
1395 | backuppath = None |
|
1397 | backuppath = None | |
1396 |
|
1398 | |||
1397 | finally: |
|
1399 | finally: | |
1398 |
ui. |
|
1400 | ui.status(_(b'removing temporary repository %s\n') % tmppath) | |
1399 | repo.vfs.rmtree(tmppath, forcibly=True) |
|
1401 | repo.vfs.rmtree(tmppath, forcibly=True) | |
1400 |
|
1402 | |||
1401 | if backuppath: |
|
1403 | if backuppath and not ui.quiet: | |
1402 | ui.warn( |
|
1404 | ui.warn( | |
1403 | _(b'copy of old repository backed up at %s\n') % backuppath |
|
1405 | _(b'copy of old repository backed up at %s\n') % backuppath | |
1404 | ) |
|
1406 | ) |
@@ -133,30 +133,6 b' non-lfs content, and the extension enabl' | |||||
133 | requirements |
|
133 | requirements | |
134 | preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store |
|
134 | preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store | |
135 |
|
135 | |||
136 | beginning upgrade... |
|
|||
137 | repository locked and read-only |
|
|||
138 | creating temporary repository to stage migrated data: * (glob) |
|
|||
139 | (it is safe to interrupt this process any time before data migration completes) |
|
|||
140 | migrating 3 total revisions (1 in filelogs, 1 in manifests, 1 in changelog) |
|
|||
141 | migrating 324 bytes in store; 129 bytes tracked data |
|
|||
142 | migrating 1 filelogs containing 1 revisions (73 bytes in store; 8 bytes tracked data) |
|
|||
143 | finished migrating 1 filelog revisions across 1 filelogs; change in size: 0 bytes |
|
|||
144 | migrating 1 manifests containing 1 revisions (117 bytes in store; 52 bytes tracked data) |
|
|||
145 | finished migrating 1 manifest revisions across 1 manifests; change in size: 0 bytes |
|
|||
146 | migrating changelog containing 1 revisions (134 bytes in store; 69 bytes tracked data) |
|
|||
147 | finished migrating 1 changelog revisions; change in size: 0 bytes |
|
|||
148 | finished migrating 3 total revisions; total change in store size: 0 bytes |
|
|||
149 | copying phaseroots |
|
|||
150 | data fully migrated to temporary repository |
|
|||
151 | marking source repository as being upgraded; clients will be unable to read from repository |
|
|||
152 | starting in-place swap of repository data |
|
|||
153 | replaced files will be backed up at * (glob) |
|
|||
154 | replacing store... |
|
|||
155 | store replacement complete; repository was inconsistent for *s (glob) |
|
|||
156 | finalizing requirements file and making repository readable again |
|
|||
157 | removing temporary repository * (glob) |
|
|||
158 | copy of old repository backed up at * (glob) |
|
|||
159 | the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified |
|
|||
160 |
|
136 | |||
161 | $ grep 'lfs' .hg/requires $SERVER_REQUIRES |
|
137 | $ grep 'lfs' .hg/requires $SERVER_REQUIRES | |
162 | [1] |
|
138 | [1] |
@@ -174,6 +174,11 b' An upgrade of a repository created with ' | |||||
174 | every revision will be re-added as if it was new content. It will go through the full storage mechanism giving extensions a chance to process it (eg. lfs). This is similar to "re-delta-all" but even slower since more logic is involved. |
|
174 | every revision will be re-added as if it was new content. It will go through the full storage mechanism giving extensions a chance to process it (eg. lfs). This is similar to "re-delta-all" but even slower since more logic is involved. | |
175 |
|
175 | |||
176 |
|
176 | |||
|
177 | $ hg debugupgraderepo --quiet | |||
|
178 | requirements | |||
|
179 | preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store | |||
|
180 | ||||
|
181 | ||||
177 | --optimize can be used to add optimizations |
|
182 | --optimize can be used to add optimizations | |
178 |
|
183 | |||
179 | $ hg debugupgrade --optimize redeltaparent |
|
184 | $ hg debugupgrade --optimize redeltaparent | |
@@ -225,6 +230,12 b' modern form of the option' | |||||
225 | re-delta-fulladd |
|
230 | re-delta-fulladd | |
226 | every revision will be re-added as if it was new content. It will go through the full storage mechanism giving extensions a chance to process it (eg. lfs). This is similar to "re-delta-all" but even slower since more logic is involved. |
|
231 | every revision will be re-added as if it was new content. It will go through the full storage mechanism giving extensions a chance to process it (eg. lfs). This is similar to "re-delta-all" but even slower since more logic is involved. | |
227 |
|
232 | |||
|
233 | $ hg debugupgrade --optimize re-delta-parent --quiet | |||
|
234 | requirements | |||
|
235 | preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store | |||
|
236 | ||||
|
237 | optimisations: re-delta-parent | |||
|
238 | ||||
228 |
|
239 | |||
229 | unknown optimization: |
|
240 | unknown optimization: | |
230 |
|
241 | |||
@@ -332,6 +343,11 b' Various sub-optimal detections work' | |||||
332 | re-delta-fulladd |
|
343 | re-delta-fulladd | |
333 | every revision will be re-added as if it was new content. It will go through the full storage mechanism giving extensions a chance to process it (eg. lfs). This is similar to "re-delta-all" but even slower since more logic is involved. |
|
344 | every revision will be re-added as if it was new content. It will go through the full storage mechanism giving extensions a chance to process it (eg. lfs). This is similar to "re-delta-all" but even slower since more logic is involved. | |
334 |
|
345 | |||
|
346 | $ hg debugupgraderepo --quiet | |||
|
347 | requirements | |||
|
348 | preserved: revlogv1, store | |||
|
349 | added: dotencode, fncache, generaldelta, sparserevlog | |||
|
350 | ||||
335 |
|
351 | |||
336 | $ hg --config format.dotencode=false debugupgraderepo |
|
352 | $ hg --config format.dotencode=false debugupgraderepo | |
337 | repository lacks features recommended by current config options: |
|
353 | repository lacks features recommended by current config options: | |
@@ -1210,9 +1226,13 b' Check upgrading a sparse-revlog reposito' | |||||
1210 | store |
|
1226 | store | |
1211 |
|
1227 | |||
1212 | Check that we can add the sparse-revlog format requirement |
|
1228 | Check that we can add the sparse-revlog format requirement | |
1213 |
$ hg --config format.sparse-revlog=yes debugupgraderepo --run |
|
1229 | $ hg --config format.sparse-revlog=yes debugupgraderepo --run --quiet | |
1214 | copy of old repository backed up at $TESTTMP/sparserevlogrepo/.hg/upgradebackup.* (glob) |
|
1230 | upgrade will perform the following actions: | |
1215 | the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified |
|
1231 | ||
|
1232 | requirements | |||
|
1233 | preserved: dotencode, fncache, generaldelta, revlogv1, store | |||
|
1234 | added: sparserevlog | |||
|
1235 | ||||
1216 | $ cat .hg/requires |
|
1236 | $ cat .hg/requires | |
1217 | dotencode |
|
1237 | dotencode | |
1218 | fncache |
|
1238 | fncache | |
@@ -1222,9 +1242,13 b' Check that we can add the sparse-revlog ' | |||||
1222 | store |
|
1242 | store | |
1223 |
|
1243 | |||
1224 | Check that we can remove the sparse-revlog format requirement |
|
1244 | Check that we can remove the sparse-revlog format requirement | |
1225 |
$ hg --config format.sparse-revlog=no debugupgraderepo --run |
|
1245 | $ hg --config format.sparse-revlog=no debugupgraderepo --run --quiet | |
1226 | copy of old repository backed up at $TESTTMP/sparserevlogrepo/.hg/upgradebackup.* (glob) |
|
1246 | upgrade will perform the following actions: | |
1227 | the old repository will not be deleted; remove it to free up disk space once the upgraded repository is verified |
|
1247 | ||
|
1248 | requirements | |||
|
1249 | preserved: dotencode, fncache, generaldelta, revlogv1, store | |||
|
1250 | removed: sparserevlog | |||
|
1251 | ||||
1228 | $ cat .hg/requires |
|
1252 | $ cat .hg/requires | |
1229 | dotencode |
|
1253 | dotencode | |
1230 | fncache |
|
1254 | fncache | |
@@ -1239,7 +1263,13 b' Check upgrading to a zstd revlog' | |||||
1239 |
|
1263 | |||
1240 | upgrade |
|
1264 | upgrade | |
1241 |
|
1265 | |||
1242 |
$ hg --config format.revlog-compression=zstd debugupgraderepo --run --no-backup |
|
1266 | $ hg --config format.revlog-compression=zstd debugupgraderepo --run --no-backup --quiet | |
|
1267 | upgrade will perform the following actions: | |||
|
1268 | ||||
|
1269 | requirements | |||
|
1270 | preserved: dotencode, fncache, generaldelta, revlogv1, store | |||
|
1271 | added: revlog-compression-zstd, sparserevlog | |||
|
1272 | ||||
1243 | $ hg debugformat -v |
|
1273 | $ hg debugformat -v | |
1244 | format-variant repo config default |
|
1274 | format-variant repo config default | |
1245 | fncache: yes yes yes |
|
1275 | fncache: yes yes yes | |
@@ -1262,7 +1292,13 b' upgrade' | |||||
1262 |
|
1292 | |||
1263 | downgrade |
|
1293 | downgrade | |
1264 |
|
1294 | |||
1265 |
$ hg debugupgraderepo --run --no-backup |
|
1295 | $ hg debugupgraderepo --run --no-backup --quiet | |
|
1296 | upgrade will perform the following actions: | |||
|
1297 | ||||
|
1298 | requirements | |||
|
1299 | preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store | |||
|
1300 | removed: revlog-compression-zstd | |||
|
1301 | ||||
1266 | $ hg debugformat -v |
|
1302 | $ hg debugformat -v | |
1267 | format-variant repo config default |
|
1303 | format-variant repo config default | |
1268 | fncache: yes yes yes |
|
1304 | fncache: yes yes yes | |
@@ -1288,7 +1324,13 b' upgrade from hgrc' | |||||
1288 | > [format] |
|
1324 | > [format] | |
1289 | > revlog-compression=zstd |
|
1325 | > revlog-compression=zstd | |
1290 | > EOF |
|
1326 | > EOF | |
1291 |
$ hg debugupgraderepo --run --no-backup |
|
1327 | $ hg debugupgraderepo --run --no-backup --quiet | |
|
1328 | upgrade will perform the following actions: | |||
|
1329 | ||||
|
1330 | requirements | |||
|
1331 | preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store | |||
|
1332 | added: revlog-compression-zstd | |||
|
1333 | ||||
1292 | $ hg debugformat -v |
|
1334 | $ hg debugformat -v | |
1293 | format-variant repo config default |
|
1335 | format-variant repo config default | |
1294 | fncache: yes yes yes |
|
1336 | fncache: yes yes yes | |
@@ -1316,7 +1358,15 b' Check upgrading to a side-data revlog' | |||||
1316 |
|
1358 | |||
1317 | upgrade |
|
1359 | upgrade | |
1318 |
|
1360 | |||
1319 |
$ hg --config format.exp-use-side-data=yes debugupgraderepo --run --no-backup --config "extensions.sidedata=$TESTDIR/testlib/ext-sidedata.py" |
|
1361 | $ hg --config format.exp-use-side-data=yes debugupgraderepo --run --no-backup --config "extensions.sidedata=$TESTDIR/testlib/ext-sidedata.py" --quiet | |
|
1362 | upgrade will perform the following actions: | |||
|
1363 | ||||
|
1364 | requirements | |||
|
1365 | preserved: dotencode, fncache, generaldelta, revlogv1, store (no-zstd !) | |||
|
1366 | preserved: dotencode, fncache, generaldelta, revlog-compression-zstd, revlogv1, sparserevlog, store (zstd !) | |||
|
1367 | added: exp-sidedata-flag (zstd !) | |||
|
1368 | added: exp-sidedata-flag, sparserevlog (no-zstd !) | |||
|
1369 | ||||
1320 | $ hg debugformat -v |
|
1370 | $ hg debugformat -v | |
1321 | format-variant repo config default |
|
1371 | format-variant repo config default | |
1322 | fncache: yes yes yes |
|
1372 | fncache: yes yes yes | |
@@ -1345,7 +1395,14 b' upgrade' | |||||
1345 |
|
1395 | |||
1346 | downgrade |
|
1396 | downgrade | |
1347 |
|
1397 | |||
1348 |
$ hg debugupgraderepo --config format.exp-use-side-data=no --run --no-backup |
|
1398 | $ hg debugupgraderepo --config format.exp-use-side-data=no --run --no-backup --quiet | |
|
1399 | upgrade will perform the following actions: | |||
|
1400 | ||||
|
1401 | requirements | |||
|
1402 | preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store (no-zstd !) | |||
|
1403 | preserved: dotencode, fncache, generaldelta, revlog-compression-zstd, revlogv1, sparserevlog, store (zstd !) | |||
|
1404 | removed: exp-sidedata-flag | |||
|
1405 | ||||
1349 | $ hg debugformat -v |
|
1406 | $ hg debugformat -v | |
1350 | format-variant repo config default |
|
1407 | format-variant repo config default | |
1351 | fncache: yes yes yes |
|
1408 | fncache: yes yes yes | |
@@ -1374,7 +1431,14 b' upgrade from hgrc' | |||||
1374 | > [format] |
|
1431 | > [format] | |
1375 | > exp-use-side-data=yes |
|
1432 | > exp-use-side-data=yes | |
1376 | > EOF |
|
1433 | > EOF | |
1377 |
$ hg debugupgraderepo --run --no-backup |
|
1434 | $ hg debugupgraderepo --run --no-backup --quiet | |
|
1435 | upgrade will perform the following actions: | |||
|
1436 | ||||
|
1437 | requirements | |||
|
1438 | preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store (no-zstd !) | |||
|
1439 | preserved: dotencode, fncache, generaldelta, revlog-compression-zstd, revlogv1, sparserevlog, store (zstd !) | |||
|
1440 | added: exp-sidedata-flag | |||
|
1441 | ||||
1378 | $ hg debugformat -v |
|
1442 | $ hg debugformat -v | |
1379 | format-variant repo config default |
|
1443 | format-variant repo config default | |
1380 | fncache: yes yes yes |
|
1444 | fncache: yes yes yes |
General Comments 0
You need to be logged in to leave comments.
Login now