##// END OF EJS Templates
upgrade: make sure we reclone all revlogs when updating to some format...
marmoute -
r43100:a3c2ffcd default
parent child Browse files
Show More
@@ -28,6 +28,12 b' from .utils import ('
28 compression,
28 compression,
29 )
29 )
30
30
31 # list of requirements that request a clone of all revlog if added/removed
32 RECLONES_REQUIREMENTS = {
33 'generaldelta',
34 localrepo.SPARSEREVLOG_REQUIREMENT,
35 }
36
31 def requiredsourcerequirements(repo):
37 def requiredsourcerequirements(repo):
32 """Obtain requirements required to be present to upgrade a repo.
38 """Obtain requirements required to be present to upgrade a repo.
33
39
@@ -952,6 +958,17 b' def upgraderepo(ui, repo, run=False, opt'
952 # determineactions could have added optimisation
958 # determineactions could have added optimisation
953 if o not in actions)
959 if o not in actions)
954
960
961 removedreqs = repo.requirements - newreqs
962 addedreqs = newreqs - repo.requirements
963
964 if revlogs != UPGRADE_ALL_REVLOGS:
965 incompatible = RECLONES_REQUIREMENTS & (removedreqs | addedreqs)
966 if incompatible:
967 msg = _('ignoring revlogs selection flags, format requirements '
968 'change: %s\n')
969 ui.warn(msg % ', '.join(sorted(incompatible)))
970 revlogs = UPGRADE_ALL_REVLOGS
971
955 def printrequirements():
972 def printrequirements():
956 ui.write(_('requirements\n'))
973 ui.write(_('requirements\n'))
957 ui.write(_(' preserved: %s\n') %
974 ui.write(_(' preserved: %s\n') %
@@ -728,6 +728,109 b' Check that we can select filelog only'
728 checking files
728 checking files
729 checked 3 changesets with 3 changes to 3 files
729 checked 3 changesets with 3 changes to 3 files
730
730
731
732 Check you can't skip revlog clone during important format downgrade
733
734 $ echo "[format]" > .hg/hgrc
735 $ echo "sparse-revlog=no" >> .hg/hgrc
736 $ hg debugupgrade --optimize re-delta-parent --run --manifest --no-backup --debug --traceback
737 ignoring revlogs selection flags, format requirements change: sparserevlog
738 upgrade will perform the following actions:
739
740 requirements
741 preserved: dotencode, fncache, generaldelta, revlogv1, store
742 removed: sparserevlog
743
744 re-delta-parent
745 deltas within internal storage will choose a new base revision if needed
746
747 beginning upgrade...
748 repository locked and read-only
749 creating temporary repository to stage migrated data: $TESTTMP/upgradegd/.hg/upgrade.* (glob)
750 (it is safe to interrupt this process any time before data migration completes)
751 migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog)
752 migrating 917 bytes in store; 401 bytes tracked data
753 migrating 3 filelogs containing 3 revisions (192 bytes in store; 0 bytes tracked data)
754 cloning 1 revisions from data/f0.i
755 cloning 1 revisions from data/f1.i
756 cloning 1 revisions from data/f2.i
757 finished migrating 3 filelog revisions across 3 filelogs; change in size: 0 bytes
758 migrating 1 manifests containing 3 revisions (349 bytes in store; 220 bytes tracked data)
759 cloning 3 revisions from 00manifest.i
760 finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes
761 migrating changelog containing 3 revisions (376 bytes in store; 181 bytes tracked data)
762 cloning 3 revisions from 00changelog.i
763 finished migrating 3 changelog revisions; change in size: 0 bytes
764 finished migrating 9 total revisions; total change in store size: 0 bytes
765 copying phaseroots
766 data fully migrated to temporary repository
767 marking source repository as being upgraded; clients will be unable to read from repository
768 starting in-place swap of repository data
769 replaced files will be backed up at $TESTTMP/upgradegd/.hg/upgradebackup.* (glob)
770 replacing store...
771 store replacement complete; repository was inconsistent for *s (glob)
772 finalizing requirements file and making repository readable again
773 removing old repository content$TESTTMP/upgradegd/.hg/upgradebackup.* (glob)
774 removing temporary repository $TESTTMP/upgradegd/.hg/upgrade.* (glob)
775 $ hg verify
776 checking changesets
777 checking manifests
778 crosschecking files in changesets and manifests
779 checking files
780 checked 3 changesets with 3 changes to 3 files
781
782 Check you can't skip revlog clone during important format upgrade
783
784 $ echo "sparse-revlog=yes" >> .hg/hgrc
785 $ hg debugupgrade --optimize re-delta-parent --run --manifest --no-backup --debug --traceback
786 ignoring revlogs selection flags, format requirements change: sparserevlog
787 upgrade will perform the following actions:
788
789 requirements
790 preserved: dotencode, fncache, generaldelta, revlogv1, store
791 added: sparserevlog
792
793 sparserevlog
794 Revlog supports delta chain with more unused data between payload. These gaps will be skipped at read time. This allows for better delta chains, making a better compression and faster exchange with server.
795
796 re-delta-parent
797 deltas within internal storage will choose a new base revision if needed
798
799 beginning upgrade...
800 repository locked and read-only
801 creating temporary repository to stage migrated data: $TESTTMP/upgradegd/.hg/upgrade.* (glob)
802 (it is safe to interrupt this process any time before data migration completes)
803 migrating 9 total revisions (3 in filelogs, 3 in manifests, 3 in changelog)
804 migrating 917 bytes in store; 401 bytes tracked data
805 migrating 3 filelogs containing 3 revisions (192 bytes in store; 0 bytes tracked data)
806 cloning 1 revisions from data/f0.i
807 cloning 1 revisions from data/f1.i
808 cloning 1 revisions from data/f2.i
809 finished migrating 3 filelog revisions across 3 filelogs; change in size: 0 bytes
810 migrating 1 manifests containing 3 revisions (349 bytes in store; 220 bytes tracked data)
811 cloning 3 revisions from 00manifest.i
812 finished migrating 3 manifest revisions across 1 manifests; change in size: 0 bytes
813 migrating changelog containing 3 revisions (376 bytes in store; 181 bytes tracked data)
814 cloning 3 revisions from 00changelog.i
815 finished migrating 3 changelog revisions; change in size: 0 bytes
816 finished migrating 9 total revisions; total change in store size: 0 bytes
817 copying phaseroots
818 data fully migrated to temporary repository
819 marking source repository as being upgraded; clients will be unable to read from repository
820 starting in-place swap of repository data
821 replaced files will be backed up at $TESTTMP/upgradegd/.hg/upgradebackup.* (glob)
822 replacing store...
823 store replacement complete; repository was inconsistent for *s (glob)
824 finalizing requirements file and making repository readable again
825 removing old repository content$TESTTMP/upgradegd/.hg/upgradebackup.* (glob)
826 removing temporary repository $TESTTMP/upgradegd/.hg/upgrade.* (glob)
827 $ hg verify
828 checking changesets
829 checking manifests
830 crosschecking files in changesets and manifests
831 checking files
832 checked 3 changesets with 3 changes to 3 files
833
731 $ cd ..
834 $ cd ..
732
835
733 store files with special filenames aren't encoded during copy
836 store files with special filenames aren't encoded during copy
General Comments 0
You need to be logged in to leave comments. Login now