comparison tests/test-upgrade-repo.t @ 48448:62e6222cc5b6

upgrade: only process revlogs that needs it by default We have more and more requirement that does not affect revlog or that only affect some of them. It is silly to force a full processing of all revlog to juste move the requirement around, or to simply rewrite the dirstate. So now, only the revlog that needs to be touched will be touched. Unless the --changelog & al flags are used. Differential Revision: https://phab.mercurial-scm.org/D11871
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Mon, 06 Dec 2021 17:54:39 +0100
parents 8405c1bffacf
children 5e6542143d40
comparison
equal deleted inserted replaced
48447:8405c1bffacf 48448:62e6222cc5b6
211 211
212 requirements 212 requirements
213 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store (no-rust !) 213 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store (no-rust !)
214 preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, sparserevlog, store (rust !) 214 preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, sparserevlog, store (rust !)
215 215
216 processed revlogs: 216 no revlogs to process
217 - all-filelogs
218 - changelog
219 - manifest
220 217
221 additional optimizations are available by specifying "--optimize <name>": 218 additional optimizations are available by specifying "--optimize <name>":
222 219
223 re-delta-parent 220 re-delta-parent
224 deltas within internal storage will be recalculated to choose an optimal base revision where this was not already done; the size of the repository may shrink and various operations may become faster; the first time this optimization is performed could slow down upgrade execution considerably; subsequent invocations should not run noticeably slower 221 deltas within internal storage will be recalculated to choose an optimal base revision where this was not already done; the size of the repository may shrink and various operations may become faster; the first time this optimization is performed could slow down upgrade execution considerably; subsequent invocations should not run noticeably slower
236 $ hg debugupgraderepo --quiet 233 $ hg debugupgraderepo --quiet
237 requirements 234 requirements
238 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store (no-rust !) 235 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store (no-rust !)
239 preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, sparserevlog, store (rust !) 236 preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, sparserevlog, store (rust !)
240 237
241 processed revlogs: 238 no revlogs to process
242 - all-filelogs
243 - changelog
244 - manifest
245 239
246 240
247 --optimize can be used to add optimizations 241 --optimize can be used to add optimizations
248 242
249 $ hg debugupgrade --optimize 're-delta-parent' 243 $ hg debugupgrade --optimize 're-delta-parent'
961 $ echo "[format]" > .hg/hgrc 955 $ echo "[format]" > .hg/hgrc
962 $ echo "sparse-revlog=no" >> .hg/hgrc 956 $ echo "sparse-revlog=no" >> .hg/hgrc
963 $ hg debugupgrade --optimize re-delta-parent --no-manifest --no-backup --quiet 957 $ hg debugupgrade --optimize re-delta-parent --no-manifest --no-backup --quiet
964 warning: ignoring --no-manifest, as upgrade is changing: sparserevlog 958 warning: ignoring --no-manifest, as upgrade is changing: sparserevlog
965 959
966 ignoring revlogs selection flags, format requirements change: sparserevlog
967 requirements 960 requirements
968 preserved: dotencode, fncache, generaldelta, revlogv1, store (no-rust !) 961 preserved: dotencode, fncache, generaldelta, revlogv1, store (no-rust !)
969 preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, store (rust !) 962 preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, store (rust !)
970 removed: sparserevlog 963 removed: sparserevlog
971 964
978 971
979 $ hg debugupgrade --optimize re-delta-parent --run --manifest --no-backup --debug --traceback 972 $ hg debugupgrade --optimize re-delta-parent --run --manifest --no-backup --debug --traceback
980 note: selecting all-filelogs for processing to change: sparserevlog 973 note: selecting all-filelogs for processing to change: sparserevlog
981 note: selecting changelog for processing to change: sparserevlog 974 note: selecting changelog for processing to change: sparserevlog
982 975
983 ignoring revlogs selection flags, format requirements change: sparserevlog
984 upgrade will perform the following actions: 976 upgrade will perform the following actions:
985 977
986 requirements 978 requirements
987 preserved: dotencode, fncache, generaldelta, revlogv1, store (no-rust !) 979 preserved: dotencode, fncache, generaldelta, revlogv1, store (no-rust !)
988 preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, store (rust !) 980 preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, store (rust !)
1036 $ echo "sparse-revlog=yes" >> .hg/hgrc 1028 $ echo "sparse-revlog=yes" >> .hg/hgrc
1037 $ hg debugupgrade --optimize re-delta-parent --run --manifest --no-backup --debug --traceback 1029 $ hg debugupgrade --optimize re-delta-parent --run --manifest --no-backup --debug --traceback
1038 note: selecting all-filelogs for processing to change: sparserevlog 1030 note: selecting all-filelogs for processing to change: sparserevlog
1039 note: selecting changelog for processing to change: sparserevlog 1031 note: selecting changelog for processing to change: sparserevlog
1040 1032
1041 ignoring revlogs selection flags, format requirements change: sparserevlog
1042 upgrade will perform the following actions: 1033 upgrade will perform the following actions:
1043 1034
1044 requirements 1035 requirements
1045 preserved: dotencode, fncache, generaldelta, revlogv1, store (no-rust !) 1036 preserved: dotencode, fncache, generaldelta, revlogv1, store (no-rust !)
1046 preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, store (rust !) 1037 preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, store (rust !)
1693 added: dirstate-v2 1684 added: dirstate-v2
1694 1685
1695 dirstate-v2 1686 dirstate-v2
1696 "hg status" will be faster 1687 "hg status" will be faster
1697 1688
1698 processed revlogs: 1689 no revlogs to process
1699 - all-filelogs
1700 - changelog
1701 - manifest
1702 1690
1703 beginning upgrade... 1691 beginning upgrade...
1704 repository locked and read-only 1692 repository locked and read-only
1705 creating temporary repository to stage upgraded data: $TESTTMP/sparserevlogrepo/.hg/upgrade.* (glob) 1693 creating temporary repository to stage upgraded data: $TESTTMP/sparserevlogrepo/.hg/upgrade.* (glob)
1706 (it is safe to interrupt this process any time before data migration completes) 1694 (it is safe to interrupt this process any time before data migration completes)
1722 1710
1723 requirements 1711 requirements
1724 preserved: * (glob) 1712 preserved: * (glob)
1725 removed: dirstate-v2 1713 removed: dirstate-v2
1726 1714
1727 processed revlogs: 1715 no revlogs to process
1728 - all-filelogs
1729 - changelog
1730 - manifest
1731 1716
1732 beginning upgrade... 1717 beginning upgrade...
1733 repository locked and read-only 1718 repository locked and read-only
1734 creating temporary repository to stage upgraded data: $TESTTMP/sparserevlogrepo/.hg/upgrade.* (glob) 1719 creating temporary repository to stage upgraded data: $TESTTMP/sparserevlogrepo/.hg/upgrade.* (glob)
1735 (it is safe to interrupt this process any time before data migration completes) 1720 (it is safe to interrupt this process any time before data migration completes)
1760 added: dirstate-v2 1745 added: dirstate-v2
1761 1746
1762 dirstate-v2 1747 dirstate-v2
1763 "hg status" will be faster 1748 "hg status" will be faster
1764 1749
1765 processed revlogs: 1750 no revlogs to process
1766 - all-filelogs
1767 - changelog
1768 - manifest
1769 1751
1770 beginning upgrade... 1752 beginning upgrade...
1771 repository locked and read-only 1753 repository locked and read-only
1772 creating temporary repository to stage upgraded data: $TESTTMP/dirstate-v2-empty/.hg/upgrade.* (glob) 1754 creating temporary repository to stage upgraded data: $TESTTMP/dirstate-v2-empty/.hg/upgrade.* (glob)
1773 (it is safe to interrupt this process any time before data migration completes) 1755 (it is safe to interrupt this process any time before data migration completes)
1784 1766
1785 requirements 1767 requirements
1786 preserved: * (glob) 1768 preserved: * (glob)
1787 removed: dirstate-v2 1769 removed: dirstate-v2
1788 1770
1789 processed revlogs: 1771 no revlogs to process
1790 - all-filelogs
1791 - changelog
1792 - manifest
1793 1772
1794 beginning upgrade... 1773 beginning upgrade...
1795 repository locked and read-only 1774 repository locked and read-only
1796 creating temporary repository to stage upgraded data: $TESTTMP/dirstate-v2-empty/.hg/upgrade.* (glob) 1775 creating temporary repository to stage upgraded data: $TESTTMP/dirstate-v2-empty/.hg/upgrade.* (glob)
1797 (it is safe to interrupt this process any time before data migration completes) 1776 (it is safe to interrupt this process any time before data migration completes)