annotate tests/test-persistent-nodemap.t @ 45053:cc2572923ea3

revlog: avoid hard-coded hash sizes Differential Revision: https://phab.mercurial-scm.org/D8683
author Joerg Sonnenberger <joerg@bec.de>
date Mon, 06 Jul 2020 14:30:13 +0200
parents 91f4662b7fa7
children 705c37f22859
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
44307
c577bb4a04d4 nodemap: have some python code writing a nodemap in persistent binary form
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
1 ===================================
c577bb4a04d4 nodemap: have some python code writing a nodemap in persistent binary form
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
2 Test the persistent on-disk nodemap
c577bb4a04d4 nodemap: have some python code writing a nodemap in persistent binary form
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
3 ===================================
c577bb4a04d4 nodemap: have some python code writing a nodemap in persistent binary form
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
4
44791
b81486b609a3 nodemap: gate the feature behind a new requirement
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44789
diff changeset
5 $ cat << EOF >> $HGRCPATH
44793
d688a8d537b9 nodemap: move the main switch to the `format` section
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44791
diff changeset
6 > [format]
d688a8d537b9 nodemap: move the main switch to the `format` section
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44791
diff changeset
7 > use-persistent-nodemap=yes
44313
6f9e8e142cea nodemap: add a (python) index class for persistent nodemap testing
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44312
diff changeset
8 > [devel]
6f9e8e142cea nodemap: add a (python) index class for persistent nodemap testing
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44312
diff changeset
9 > persistent-nodemap=yes
44308
5962fd0d1045 nodemap: write nodemap data on disk
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44307
diff changeset
10 > EOF
44791
b81486b609a3 nodemap: gate the feature behind a new requirement
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44789
diff changeset
11 $ hg init test-repo
b81486b609a3 nodemap: gate the feature behind a new requirement
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44789
diff changeset
12 $ cd test-repo
44799
ea9563e9e65a nodemap: teach `hg debugformat` about the persistent nodemap option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44796
diff changeset
13 $ hg debugformat
ea9563e9e65a nodemap: teach `hg debugformat` about the persistent nodemap option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44796
diff changeset
14 format-variant repo
ea9563e9e65a nodemap: teach `hg debugformat` about the persistent nodemap option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44796
diff changeset
15 fncache: yes
ea9563e9e65a nodemap: teach `hg debugformat` about the persistent nodemap option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44796
diff changeset
16 dotencode: yes
ea9563e9e65a nodemap: teach `hg debugformat` about the persistent nodemap option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44796
diff changeset
17 generaldelta: yes
ea9563e9e65a nodemap: teach `hg debugformat` about the persistent nodemap option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44796
diff changeset
18 sparserevlog: yes
ea9563e9e65a nodemap: teach `hg debugformat` about the persistent nodemap option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44796
diff changeset
19 sidedata: no
ea9563e9e65a nodemap: teach `hg debugformat` about the persistent nodemap option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44796
diff changeset
20 persistent-nodemap: yes
ea9563e9e65a nodemap: teach `hg debugformat` about the persistent nodemap option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44796
diff changeset
21 copies-sdc: no
ea9563e9e65a nodemap: teach `hg debugformat` about the persistent nodemap option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44796
diff changeset
22 plain-cl-delta: yes
ea9563e9e65a nodemap: teach `hg debugformat` about the persistent nodemap option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44796
diff changeset
23 compression: zlib
ea9563e9e65a nodemap: teach `hg debugformat` about the persistent nodemap option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44796
diff changeset
24 compression-level: default
44796
d36283e20833 nodemap: move the mode option to storage.revlog.nodemap.mode
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44795
diff changeset
25 $ hg debugbuilddag .+5000 --new-file --config "storage.revlog.nodemap.mode=warn"
44788
6493f0a567c2 nodemap: add a new mode option, with an optional "warn" value
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44786
diff changeset
26 persistent nodemap in strict mode without efficient method (no-rust no-pure !)
6493f0a567c2 nodemap: add a new mode option, with an optional "warn" value
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44786
diff changeset
27 persistent nodemap in strict mode without efficient method (no-rust no-pure !)
44334
6614b301ea58 nodemap: add a flag to dump the details of the docket
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44333
diff changeset
28 $ hg debugnodemap --metadata
6614b301ea58 nodemap: add a flag to dump the details of the docket
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44333
diff changeset
29 uid: ???????????????? (glob)
44335
e41a164db7a9 nodemap: track the maximum revision tracked in the nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44334
diff changeset
30 tip-rev: 5000
44785
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
31 tip-node: 6b02b8c7b96654c25e86ba69eda198d7e6ad8b3c
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
32 data-length: 121088
44336
8374b69aef75 nodemap: track the total and unused amount of data in the rawdata file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44335
diff changeset
33 data-unused: 0
44635
99ea74cbed74 nodemap: display percentage of unused in `hg debugnodemap`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44634
diff changeset
34 data-unused: 0.000%
44311
2b72c4ff8ed1 nodemap: use an intermediate "docket" file to carry small metadata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44309
diff changeset
35 $ f --size .hg/store/00changelog.n
44515
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
36 .hg/store/00changelog.n: size=70
44464
23df5ecfa365 nodemap: check that a simple lookup works fine
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44445
diff changeset
37
23df5ecfa365 nodemap: check that a simple lookup works fine
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44445
diff changeset
38 Simple lookup works
23df5ecfa365 nodemap: check that a simple lookup works fine
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44445
diff changeset
39
23df5ecfa365 nodemap: check that a simple lookup works fine
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44445
diff changeset
40 $ ANYNODE=`hg log --template '{node|short}\n' --rev tip`
23df5ecfa365 nodemap: check that a simple lookup works fine
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44445
diff changeset
41 $ hg log -r "$ANYNODE" --template '{rev}\n'
23df5ecfa365 nodemap: check that a simple lookup works fine
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44445
diff changeset
42 5000
23df5ecfa365 nodemap: check that a simple lookup works fine
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44445
diff changeset
43
44513
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
44
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
45 #if rust
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
46
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
47 $ f --sha256 .hg/store/00changelog-*.nd
44785
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
48 .hg/store/00changelog-????????????????.nd: sha256=2e029d3200bd1a986b32784fc2ef1a3bd60dc331f025718bcf5ff44d93f026fd (glob)
44786
640d5b3bd060 nodemap: also use persistent nodemap for manifest
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44785
diff changeset
49
640d5b3bd060 nodemap: also use persistent nodemap for manifest
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44785
diff changeset
50 $ f --sha256 .hg/store/00manifest-*.nd
640d5b3bd060 nodemap: also use persistent nodemap for manifest
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44785
diff changeset
51 .hg/store/00manifest-????????????????.nd: sha256=97117b1c064ea2f86664a124589e47db0e254e8d34739b5c5cc5bf31c9da2b51 (glob)
44513
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
52 $ hg debugnodemap --dump-new | f --sha256 --size
44785
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
53 size=121088, sha256=2e029d3200bd1a986b32784fc2ef1a3bd60dc331f025718bcf5ff44d93f026fd
44513
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
54 $ hg debugnodemap --dump-disk | f --sha256 --bytes=256 --hexdump --size
44785
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
55 size=121088, sha256=2e029d3200bd1a986b32784fc2ef1a3bd60dc331f025718bcf5ff44d93f026fd
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
56 0000: 00 00 00 91 00 00 00 20 00 00 00 bb 00 00 00 e7 |....... ........|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
57 0010: 00 00 00 66 00 00 00 a1 00 00 01 13 00 00 01 22 |...f..........."|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
58 0020: 00 00 00 23 00 00 00 fc 00 00 00 ba 00 00 00 5e |...#...........^|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
59 0030: 00 00 00 df 00 00 01 4e 00 00 01 65 00 00 00 ab |.......N...e....|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
60 0040: 00 00 00 a9 00 00 00 95 00 00 00 73 00 00 00 38 |...........s...8|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
61 0050: 00 00 00 cc 00 00 00 92 00 00 00 90 00 00 00 69 |...............i|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
62 0060: 00 00 00 ec 00 00 00 8d 00 00 01 4f 00 00 00 12 |...........O....|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
63 0070: 00 00 02 0c 00 00 00 77 00 00 00 9c 00 00 00 8f |.......w........|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
64 0080: 00 00 00 d5 00 00 00 6b 00 00 00 48 00 00 00 b3 |.......k...H....|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
65 0090: 00 00 00 e5 00 00 00 b5 00 00 00 8e 00 00 00 ad |................|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
66 00a0: 00 00 00 7b 00 00 00 7c 00 00 00 0b 00 00 00 2b |...{...|.......+|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
67 00b0: 00 00 00 c6 00 00 00 1e 00 00 01 08 00 00 00 11 |................|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
68 00c0: 00 00 01 30 00 00 00 26 00 00 01 9c 00 00 00 35 |...0...&.......5|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
69 00d0: 00 00 00 b8 00 00 01 31 00 00 00 2c 00 00 00 55 |.......1...,...U|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
70 00e0: 00 00 00 8a 00 00 00 9a 00 00 00 0c 00 00 01 1e |................|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
71 00f0: 00 00 00 a4 00 00 00 83 00 00 00 c9 00 00 00 8c |................|
44513
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
72
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
73
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
74 #else
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
75
44312
563dfdfd01a4 nodemap: delete older raw data file when creating a new ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44311
diff changeset
76 $ f --sha256 .hg/store/00changelog-*.nd
44785
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
77 .hg/store/00changelog-????????????????.nd: sha256=f544f5462ff46097432caf6d764091f6d8c46d6121be315ead8576d548c9dd79 (glob)
44309
6c07480d6659 nodemap: add a function to read the data from disk
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44308
diff changeset
78 $ hg debugnodemap --dump-new | f --sha256 --size
44785
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
79 size=121088, sha256=f544f5462ff46097432caf6d764091f6d8c46d6121be315ead8576d548c9dd79
44309
6c07480d6659 nodemap: add a function to read the data from disk
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44308
diff changeset
80 $ hg debugnodemap --dump-disk | f --sha256 --bytes=256 --hexdump --size
44785
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
81 size=121088, sha256=f544f5462ff46097432caf6d764091f6d8c46d6121be315ead8576d548c9dd79
44307
c577bb4a04d4 nodemap: have some python code writing a nodemap in persistent binary form
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
82 0000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
44785
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
83 0010: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
84 0020: ff ff ff ff ff ff f5 06 ff ff ff ff ff ff f3 e7 |................|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
85 0030: ff ff ef ca ff ff ff ff ff ff ff ff ff ff ff ff |................|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
86 0040: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
87 0050: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ed 08 |................|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
88 0060: ff ff ed 66 ff ff ff ff ff ff ff ff ff ff ff ff |...f............|
44307
c577bb4a04d4 nodemap: have some python code writing a nodemap in persistent binary form
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
89 0070: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
44785
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
90 0080: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
91 0090: ff ff ff ff ff ff ff ff ff ff ff ff ff ff f6 ed |................|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
92 00a0: ff ff ff ff ff ff fe 61 ff ff ff ff ff ff ff ff |.......a........|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
93 00b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
94 00c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
44307
c577bb4a04d4 nodemap: have some python code writing a nodemap in persistent binary form
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
95 00d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
44785
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
96 00e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff f1 02 |................|
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
97 00f0: ff ff ff ff ff ff ed 1b ff ff ff ff ff ff ff ff |................|
44513
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
98
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
99 #endif
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
100
44318
20e125cdd719 nodemap: add basic checking of the on disk nodemap content
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44313
diff changeset
101 $ hg debugnodemap --check
20e125cdd719 nodemap: add basic checking of the on disk nodemap content
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44313
diff changeset
102 revision in index: 5001
20e125cdd719 nodemap: add basic checking of the on disk nodemap content
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44313
diff changeset
103 revision in nodemap: 5001
44312
563dfdfd01a4 nodemap: delete older raw data file when creating a new ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44311
diff changeset
104
563dfdfd01a4 nodemap: delete older raw data file when creating a new ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44311
diff changeset
105 add a new commit
563dfdfd01a4 nodemap: delete older raw data file when creating a new ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44311
diff changeset
106
563dfdfd01a4 nodemap: delete older raw data file when creating a new ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44311
diff changeset
107 $ hg up
44785
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
108 5001 files updated, 0 files merged, 0 files removed, 0 files unresolved
44312
563dfdfd01a4 nodemap: delete older raw data file when creating a new ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44311
diff changeset
109 $ echo foo > foo
563dfdfd01a4 nodemap: delete older raw data file when creating a new ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44311
diff changeset
110 $ hg add foo
44789
6b01799e9db0 nodemap: add a new mode value, "strict"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44788
diff changeset
111
6b01799e9db0 nodemap: add a new mode value, "strict"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44788
diff changeset
112 #if no-pure no-rust
6b01799e9db0 nodemap: add a new mode value, "strict"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44788
diff changeset
113
44796
d36283e20833 nodemap: move the mode option to storage.revlog.nodemap.mode
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44795
diff changeset
114 $ hg ci -m 'foo' --config "storage.revlog.nodemap.mode=strict"
44789
6b01799e9db0 nodemap: add a new mode value, "strict"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44788
diff changeset
115 transaction abort!
6b01799e9db0 nodemap: add a new mode value, "strict"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44788
diff changeset
116 rollback completed
6b01799e9db0 nodemap: add a new mode value, "strict"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44788
diff changeset
117 abort: persistent nodemap in strict mode without efficient method
6b01799e9db0 nodemap: add a new mode value, "strict"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44788
diff changeset
118 [255]
6b01799e9db0 nodemap: add a new mode value, "strict"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44788
diff changeset
119
6b01799e9db0 nodemap: add a new mode value, "strict"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44788
diff changeset
120 #endif
6b01799e9db0 nodemap: add a new mode value, "strict"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44788
diff changeset
121
44312
563dfdfd01a4 nodemap: delete older raw data file when creating a new ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44311
diff changeset
122 $ hg ci -m 'foo'
44336
8374b69aef75 nodemap: track the total and unused amount of data in the rawdata file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44335
diff changeset
123
44513
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
124 #if no-pure no-rust
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
125 $ hg debugnodemap --metadata
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
126 uid: ???????????????? (glob)
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
127 tip-rev: 5001
44785
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
128 tip-node: 16395c3cf7e231394735e6b1717823ada303fb0c
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
129 data-length: 121088
44513
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
130 data-unused: 0
44635
99ea74cbed74 nodemap: display percentage of unused in `hg debugnodemap`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44634
diff changeset
131 data-unused: 0.000%
44513
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
132 #else
44334
6614b301ea58 nodemap: add a flag to dump the details of the docket
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44333
diff changeset
133 $ hg debugnodemap --metadata
6614b301ea58 nodemap: add a flag to dump the details of the docket
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44333
diff changeset
134 uid: ???????????????? (glob)
44335
e41a164db7a9 nodemap: track the maximum revision tracked in the nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44334
diff changeset
135 tip-rev: 5001
44785
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
136 tip-node: 16395c3cf7e231394735e6b1717823ada303fb0c
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
137 data-length: 121344
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
138 data-unused: 256
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
139 data-unused: 0.211%
44336
8374b69aef75 nodemap: track the total and unused amount of data in the rawdata file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44335
diff changeset
140 #endif
44513
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
141
44312
563dfdfd01a4 nodemap: delete older raw data file when creating a new ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44311
diff changeset
142 $ f --size .hg/store/00changelog.n
44515
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
143 .hg/store/00changelog.n: size=70
44333
50ad851efd9b nodemap: introduce append-only incremental update of the persistent data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44318
diff changeset
144
50ad851efd9b nodemap: introduce append-only incremental update of the persistent data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44318
diff changeset
145 (The pure code use the debug code that perform incremental update, the C code reencode from scratch)
50ad851efd9b nodemap: introduce append-only incremental update of the persistent data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44318
diff changeset
146
50ad851efd9b nodemap: introduce append-only incremental update of the persistent data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44318
diff changeset
147 #if pure
50ad851efd9b nodemap: introduce append-only incremental update of the persistent data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44318
diff changeset
148 $ f --sha256 .hg/store/00changelog-*.nd --size
44785
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
149 .hg/store/00changelog-????????????????.nd: size=121344, sha256=cce54c5da5bde3ad72a4938673ed4064c86231b9c64376b082b163fdb20f8f66 (glob)
44513
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
150 #endif
44333
50ad851efd9b nodemap: introduce append-only incremental update of the persistent data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44318
diff changeset
151
44513
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
152 #if rust
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
153 $ f --sha256 .hg/store/00changelog-*.nd --size
44785
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
154 .hg/store/00changelog-????????????????.nd: size=121344, sha256=952b042fcf614ceb37b542b1b723e04f18f83efe99bee4e0f5ccd232ef470e58 (glob)
44513
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
155 #endif
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
156
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
157 #if no-pure no-rust
44312
563dfdfd01a4 nodemap: delete older raw data file when creating a new ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44311
diff changeset
158 $ f --sha256 .hg/store/00changelog-*.nd --size
44785
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
159 .hg/store/00changelog-????????????????.nd: size=121088, sha256=df7c06a035b96cb28c7287d349d603baef43240be7736fe34eea419a49702e17 (glob)
44333
50ad851efd9b nodemap: introduce append-only incremental update of the persistent data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44318
diff changeset
160 #endif
50ad851efd9b nodemap: introduce append-only incremental update of the persistent data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44318
diff changeset
161
44318
20e125cdd719 nodemap: add basic checking of the on disk nodemap content
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44313
diff changeset
162 $ hg debugnodemap --check
20e125cdd719 nodemap: add basic checking of the on disk nodemap content
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44313
diff changeset
163 revision in index: 5002
20e125cdd719 nodemap: add basic checking of the on disk nodemap content
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44313
diff changeset
164 revision in nodemap: 5002
44363
f7459da77f23 nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44336
diff changeset
165
f7459da77f23 nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44336
diff changeset
166 Test code path without mmap
f7459da77f23 nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44336
diff changeset
167 ---------------------------
f7459da77f23 nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44336
diff changeset
168
f7459da77f23 nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44336
diff changeset
169 $ echo bar > bar
f7459da77f23 nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44336
diff changeset
170 $ hg add bar
44795
059c99af141d nodemap: move the option for mmap usage to storage.revlog.nodemap.mmap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44793
diff changeset
171 $ hg ci -m 'bar' --config storage.revlog.nodemap.mmap=no
44363
f7459da77f23 nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44336
diff changeset
172
44795
059c99af141d nodemap: move the option for mmap usage to storage.revlog.nodemap.mmap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44793
diff changeset
173 $ hg debugnodemap --check --config storage.revlog.nodemap.mmap=yes
44363
f7459da77f23 nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44336
diff changeset
174 revision in index: 5003
f7459da77f23 nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44336
diff changeset
175 revision in nodemap: 5003
44795
059c99af141d nodemap: move the option for mmap usage to storage.revlog.nodemap.mmap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44793
diff changeset
176 $ hg debugnodemap --check --config storage.revlog.nodemap.mmap=no
44363
f7459da77f23 nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44336
diff changeset
177 revision in index: 5003
f7459da77f23 nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44336
diff changeset
178 revision in nodemap: 5003
f7459da77f23 nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44336
diff changeset
179
f7459da77f23 nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44336
diff changeset
180
f7459da77f23 nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44336
diff changeset
181 #if pure
f7459da77f23 nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44336
diff changeset
182 $ hg debugnodemap --metadata
f7459da77f23 nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44336
diff changeset
183 uid: ???????????????? (glob)
f7459da77f23 nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44336
diff changeset
184 tip-rev: 5002
44785
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
185 tip-node: 880b18d239dfa9f632413a2071bfdbcc4806a4fd
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
186 data-length: 121600
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
187 data-unused: 512
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
188 data-unused: 0.421%
44363
f7459da77f23 nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44336
diff changeset
189 $ f --sha256 .hg/store/00changelog-*.nd --size
44785
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
190 .hg/store/00changelog-????????????????.nd: size=121600, sha256=def52503d049ccb823974af313a98a935319ba61f40f3aa06a8be4d35c215054 (glob)
44513
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
191 #endif
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
192 #if rust
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
193 $ hg debugnodemap --metadata
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
194 uid: ???????????????? (glob)
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
195 tip-rev: 5002
44785
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
196 tip-node: 880b18d239dfa9f632413a2071bfdbcc4806a4fd
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
197 data-length: 121600
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
198 data-unused: 512
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
199 data-unused: 0.421%
44513
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
200 $ f --sha256 .hg/store/00changelog-*.nd --size
44785
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
201 .hg/store/00changelog-????????????????.nd: size=121600, sha256=dacf5b5f1d4585fee7527d0e67cad5b1ba0930e6a0928f650f779aefb04ce3fb (glob)
44513
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
202 #endif
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
203 #if no-pure no-rust
44363
f7459da77f23 nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44336
diff changeset
204 $ hg debugnodemap --metadata
f7459da77f23 nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44336
diff changeset
205 uid: ???????????????? (glob)
f7459da77f23 nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44336
diff changeset
206 tip-rev: 5002
44785
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
207 tip-node: 880b18d239dfa9f632413a2071bfdbcc4806a4fd
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
208 data-length: 121088
44363
f7459da77f23 nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44336
diff changeset
209 data-unused: 0
44635
99ea74cbed74 nodemap: display percentage of unused in `hg debugnodemap`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44634
diff changeset
210 data-unused: 0.000%
44363
f7459da77f23 nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44336
diff changeset
211 $ f --sha256 .hg/store/00changelog-*.nd --size
44785
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
212 .hg/store/00changelog-????????????????.nd: size=121088, sha256=59fcede3e3cc587755916ceed29e3c33748cd1aa7d2f91828ac83e7979d935e8 (glob)
44363
f7459da77f23 nodemap: introduce an option to use mmap to read the nodemap mapping
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44336
diff changeset
213 #endif
44445
336ec75ed1ac nodemap: warm the persistent nodemap on disk with debugupdatecache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44363
diff changeset
214
336ec75ed1ac nodemap: warm the persistent nodemap on disk with debugupdatecache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44363
diff changeset
215 Test force warming the cache
336ec75ed1ac nodemap: warm the persistent nodemap on disk with debugupdatecache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44363
diff changeset
216
336ec75ed1ac nodemap: warm the persistent nodemap on disk with debugupdatecache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44363
diff changeset
217 $ rm .hg/store/00changelog.n
336ec75ed1ac nodemap: warm the persistent nodemap on disk with debugupdatecache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44363
diff changeset
218 $ hg debugnodemap --metadata
336ec75ed1ac nodemap: warm the persistent nodemap on disk with debugupdatecache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44363
diff changeset
219 $ hg debugupdatecache
336ec75ed1ac nodemap: warm the persistent nodemap on disk with debugupdatecache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44363
diff changeset
220 #if pure
336ec75ed1ac nodemap: warm the persistent nodemap on disk with debugupdatecache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44363
diff changeset
221 $ hg debugnodemap --metadata
336ec75ed1ac nodemap: warm the persistent nodemap on disk with debugupdatecache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44363
diff changeset
222 uid: ???????????????? (glob)
336ec75ed1ac nodemap: warm the persistent nodemap on disk with debugupdatecache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44363
diff changeset
223 tip-rev: 5002
44785
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
224 tip-node: 880b18d239dfa9f632413a2071bfdbcc4806a4fd
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
225 data-length: 121088
44445
336ec75ed1ac nodemap: warm the persistent nodemap on disk with debugupdatecache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44363
diff changeset
226 data-unused: 0
44635
99ea74cbed74 nodemap: display percentage of unused in `hg debugnodemap`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44634
diff changeset
227 data-unused: 0.000%
44445
336ec75ed1ac nodemap: warm the persistent nodemap on disk with debugupdatecache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44363
diff changeset
228 #else
336ec75ed1ac nodemap: warm the persistent nodemap on disk with debugupdatecache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44363
diff changeset
229 $ hg debugnodemap --metadata
336ec75ed1ac nodemap: warm the persistent nodemap on disk with debugupdatecache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44363
diff changeset
230 uid: ???????????????? (glob)
336ec75ed1ac nodemap: warm the persistent nodemap on disk with debugupdatecache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44363
diff changeset
231 tip-rev: 5002
44785
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
232 tip-node: 880b18d239dfa9f632413a2071bfdbcc4806a4fd
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
233 data-length: 121088
44445
336ec75ed1ac nodemap: warm the persistent nodemap on disk with debugupdatecache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44363
diff changeset
234 data-unused: 0
44635
99ea74cbed74 nodemap: display percentage of unused in `hg debugnodemap`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44634
diff changeset
235 data-unused: 0.000%
44445
336ec75ed1ac nodemap: warm the persistent nodemap on disk with debugupdatecache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44363
diff changeset
236 #endif
44495
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
237
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
238 Check out of sync nodemap
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
239 =========================
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
240
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
241 First copy old data on the side.
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
242
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
243 $ mkdir ../tmp-copies
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
244 $ cp .hg/store/00changelog-????????????????.nd .hg/store/00changelog.n ../tmp-copies
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
245
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
246 Nodemap lagging behind
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
247 ----------------------
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
248
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
249 make a new commit
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
250
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
251 $ echo bar2 > bar
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
252 $ hg ci -m 'bar2'
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
253 $ NODE=`hg log -r tip -T '{node}\n'`
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
254 $ hg log -r "$NODE" -T '{rev}\n'
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
255 5003
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
256
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
257 If the nodemap is lagging behind, it can catch up fine
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
258
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
259 $ hg debugnodemap --metadata
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
260 uid: ???????????????? (glob)
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
261 tip-rev: 5003
44785
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
262 tip-node: c9329770f979ade2d16912267c38ba5f82fd37b3
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
263 data-length: 121344 (pure !)
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
264 data-length: 121344 (rust !)
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
265 data-length: 121152 (no-rust no-pure !)
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
266 data-unused: 192 (pure !)
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
267 data-unused: 192 (rust !)
44495
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
268 data-unused: 0 (no-rust no-pure !)
44785
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
269 data-unused: 0.158% (pure !)
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
270 data-unused: 0.158% (rust !)
44635
99ea74cbed74 nodemap: display percentage of unused in `hg debugnodemap`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44634
diff changeset
271 data-unused: 0.000% (no-rust no-pure !)
44495
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
272 $ cp -f ../tmp-copies/* .hg/store/
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
273 $ hg debugnodemap --metadata
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
274 uid: ???????????????? (glob)
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
275 tip-rev: 5002
44785
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
276 tip-node: 880b18d239dfa9f632413a2071bfdbcc4806a4fd
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
277 data-length: 121088
44495
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
278 data-unused: 0
44635
99ea74cbed74 nodemap: display percentage of unused in `hg debugnodemap`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44634
diff changeset
279 data-unused: 0.000%
44495
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
280 $ hg log -r "$NODE" -T '{rev}\n'
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
281 5003
44515
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
282
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
283 changelog altered
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
284 -----------------
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
285
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
286 If the nodemap is not gated behind a requirements, an unaware client can alter
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
287 the repository so the revlog used to generate the nodemap is not longer
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
288 compatible with the persistent nodemap. We need to detect that.
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
289
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
290 $ hg up "$NODE~5"
44785
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
291 0 files updated, 0 files merged, 4 files removed, 0 files unresolved
44515
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
292 $ echo bar > babar
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
293 $ hg add babar
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
294 $ hg ci -m 'babar'
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
295 created new head
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
296 $ OTHERNODE=`hg log -r tip -T '{node}\n'`
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
297 $ hg log -r "$OTHERNODE" -T '{rev}\n'
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
298 5004
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
299
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
300 $ hg --config extensions.strip= strip --rev "$NODE~1" --no-backup
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
301
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
302 the nodemap should detect the changelog have been tampered with and recover.
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
303
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
304 $ hg debugnodemap --metadata
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
305 uid: ???????????????? (glob)
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
306 tip-rev: 5002
44785
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
307 tip-node: b355ef8adce0949b8bdf6afc72ca853740d65944
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
308 data-length: 121536 (pure !)
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
309 data-length: 121088 (rust !)
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
310 data-length: 121088 (no-pure no-rust !)
44515
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
311 data-unused: 448 (pure !)
44636
c70bcaf7927b nodemap: automatically "vacuum" the persistent nodemap when too sparse
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44635
diff changeset
312 data-unused: 0 (rust !)
44515
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
313 data-unused: 0 (no-pure no-rust !)
44636
c70bcaf7927b nodemap: automatically "vacuum" the persistent nodemap when too sparse
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44635
diff changeset
314 data-unused: 0.000% (rust !)
44785
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
315 data-unused: 0.369% (pure !)
44635
99ea74cbed74 nodemap: display percentage of unused in `hg debugnodemap`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44634
diff changeset
316 data-unused: 0.000% (no-pure no-rust !)
44515
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
317
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
318 $ cp -f ../tmp-copies/* .hg/store/
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
319 $ hg debugnodemap --metadata
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
320 uid: ???????????????? (glob)
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
321 tip-rev: 5002
44785
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
322 tip-node: 880b18d239dfa9f632413a2071bfdbcc4806a4fd
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
323 data-length: 121088
44515
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
324 data-unused: 0
44635
99ea74cbed74 nodemap: display percentage of unused in `hg debugnodemap`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44634
diff changeset
325 data-unused: 0.000%
44515
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
326 $ hg log -r "$OTHERNODE" -T '{rev}\n'
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
327 5002
44516
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44515
diff changeset
328
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44515
diff changeset
329 Check transaction related property
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44515
diff changeset
330 ==================================
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44515
diff changeset
331
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44515
diff changeset
332 An up to date nodemap should be available to shell hooks,
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44515
diff changeset
333
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44515
diff changeset
334 $ echo dsljfl > a
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44515
diff changeset
335 $ hg add a
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44515
diff changeset
336 $ hg ci -m a
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44515
diff changeset
337 $ hg debugnodemap --metadata
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44515
diff changeset
338 uid: ???????????????? (glob)
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44515
diff changeset
339 tip-rev: 5003
44785
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
340 tip-node: a52c5079765b5865d97b993b303a18740113bbb2
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
341 data-length: 121088
44516
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44515
diff changeset
342 data-unused: 0
44635
99ea74cbed74 nodemap: display percentage of unused in `hg debugnodemap`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44634
diff changeset
343 data-unused: 0.000%
44516
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44515
diff changeset
344 $ echo babar2 > babar
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44515
diff changeset
345 $ hg ci -m 'babar2' --config "hooks.pretxnclose.nodemap-test=hg debugnodemap --metadata"
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44515
diff changeset
346 uid: ???????????????? (glob)
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44515
diff changeset
347 tip-rev: 5004
44785
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
348 tip-node: 2f5fb1c06a16834c5679d672e90da7c5f3b1a984
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
349 data-length: 121280 (pure !)
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
350 data-length: 121280 (rust !)
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
351 data-length: 121088 (no-pure no-rust !)
44516
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44515
diff changeset
352 data-unused: 192 (pure !)
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44515
diff changeset
353 data-unused: 192 (rust !)
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44515
diff changeset
354 data-unused: 0 (no-pure no-rust !)
44785
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
355 data-unused: 0.158% (pure !)
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
356 data-unused: 0.158% (rust !)
44635
99ea74cbed74 nodemap: display percentage of unused in `hg debugnodemap`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44634
diff changeset
357 data-unused: 0.000% (no-pure no-rust !)
44516
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44515
diff changeset
358 $ hg debugnodemap --metadata
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44515
diff changeset
359 uid: ???????????????? (glob)
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44515
diff changeset
360 tip-rev: 5004
44785
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
361 tip-node: 2f5fb1c06a16834c5679d672e90da7c5f3b1a984
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
362 data-length: 121280 (pure !)
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
363 data-length: 121280 (rust !)
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
364 data-length: 121088 (no-pure no-rust !)
44516
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44515
diff changeset
365 data-unused: 192 (pure !)
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44515
diff changeset
366 data-unused: 192 (rust !)
64e2f603de9d nodemap: make sure hooks have access to an up-to-date version
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44515
diff changeset
367 data-unused: 0 (no-pure no-rust !)
44785
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
368 data-unused: 0.158% (pure !)
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
369 data-unused: 0.158% (rust !)
44635
99ea74cbed74 nodemap: display percentage of unused in `hg debugnodemap`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44634
diff changeset
370 data-unused: 0.000% (no-pure no-rust !)
44633
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44516
diff changeset
371
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44516
diff changeset
372 Another process does not see the pending nodemap content during run.
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44516
diff changeset
373
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44516
diff changeset
374 $ PATH=$RUNTESTDIR/testlib/:$PATH
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44516
diff changeset
375 $ echo qpoasp > a
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44516
diff changeset
376 $ hg ci -m a2 \
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44516
diff changeset
377 > --config "hooks.pretxnclose=wait-on-file 20 sync-repo-read sync-txn-pending" \
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44516
diff changeset
378 > --config "hooks.txnclose=touch sync-txn-close" > output.txt 2>&1 &
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44516
diff changeset
379
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44516
diff changeset
380 (read the repository while the commit transaction is pending)
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44516
diff changeset
381
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44516
diff changeset
382 $ wait-on-file 20 sync-txn-pending && \
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44516
diff changeset
383 > hg debugnodemap --metadata && \
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44516
diff changeset
384 > wait-on-file 20 sync-txn-close sync-repo-read
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44516
diff changeset
385 uid: ???????????????? (glob)
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44516
diff changeset
386 tip-rev: 5004
44785
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
387 tip-node: 2f5fb1c06a16834c5679d672e90da7c5f3b1a984
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
388 data-length: 121280 (pure !)
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
389 data-length: 121280 (rust !)
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
390 data-length: 121088 (no-pure no-rust !)
44633
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44516
diff changeset
391 data-unused: 192 (pure !)
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44516
diff changeset
392 data-unused: 192 (rust !)
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44516
diff changeset
393 data-unused: 0 (no-pure no-rust !)
44785
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
394 data-unused: 0.158% (pure !)
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
395 data-unused: 0.158% (rust !)
44635
99ea74cbed74 nodemap: display percentage of unused in `hg debugnodemap`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44634
diff changeset
396 data-unused: 0.000% (no-pure no-rust !)
44633
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44516
diff changeset
397 $ hg debugnodemap --metadata
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44516
diff changeset
398 uid: ???????????????? (glob)
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44516
diff changeset
399 tip-rev: 5005
44785
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
400 tip-node: 90d5d3ba2fc47db50f712570487cb261a68c8ffe
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
401 data-length: 121536 (pure !)
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
402 data-length: 121536 (rust !)
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
403 data-length: 121088 (no-pure no-rust !)
44633
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44516
diff changeset
404 data-unused: 448 (pure !)
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44516
diff changeset
405 data-unused: 448 (rust !)
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44516
diff changeset
406 data-unused: 0 (no-pure no-rust !)
44785
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
407 data-unused: 0.369% (pure !)
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
408 data-unused: 0.369% (rust !)
44635
99ea74cbed74 nodemap: display percentage of unused in `hg debugnodemap`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44634
diff changeset
409 data-unused: 0.000% (no-pure no-rust !)
44633
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44516
diff changeset
410
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44516
diff changeset
411 $ cat output.txt
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44516
diff changeset
412
44634
01b0805534bb nodemap: make sure on disk change get rolled back with the transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44633
diff changeset
413 Check that a failing transaction will properly revert the data
01b0805534bb nodemap: make sure on disk change get rolled back with the transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44633
diff changeset
414
01b0805534bb nodemap: make sure on disk change get rolled back with the transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44633
diff changeset
415 $ echo plakfe > a
01b0805534bb nodemap: make sure on disk change get rolled back with the transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44633
diff changeset
416 $ f --size --sha256 .hg/store/00changelog-*.nd
44785
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
417 .hg/store/00changelog-????????????????.nd: size=121536, sha256=bb414468d225cf52d69132e1237afba34d4346ee2eb81b505027e6197b107f03 (glob) (pure !)
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
418 .hg/store/00changelog-????????????????.nd: size=121536, sha256=909ac727bc4d1c0fda5f7bff3c620c98bd4a2967c143405a1503439e33b377da (glob) (rust !)
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
419 .hg/store/00changelog-????????????????.nd: size=121088, sha256=342d36d30d86dde67d3cb6c002606c4a75bcad665595d941493845066d9c8ee0 (glob) (no-pure no-rust !)
44634
01b0805534bb nodemap: make sure on disk change get rolled back with the transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44633
diff changeset
420 $ hg ci -m a3 --config "extensions.abort=$RUNTESTDIR/testlib/crash_transaction_late.py"
01b0805534bb nodemap: make sure on disk change get rolled back with the transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44633
diff changeset
421 transaction abort!
01b0805534bb nodemap: make sure on disk change get rolled back with the transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44633
diff changeset
422 rollback completed
01b0805534bb nodemap: make sure on disk change get rolled back with the transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44633
diff changeset
423 abort: This is a late abort
01b0805534bb nodemap: make sure on disk change get rolled back with the transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44633
diff changeset
424 [255]
01b0805534bb nodemap: make sure on disk change get rolled back with the transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44633
diff changeset
425 $ hg debugnodemap --metadata
01b0805534bb nodemap: make sure on disk change get rolled back with the transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44633
diff changeset
426 uid: ???????????????? (glob)
01b0805534bb nodemap: make sure on disk change get rolled back with the transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44633
diff changeset
427 tip-rev: 5005
44785
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
428 tip-node: 90d5d3ba2fc47db50f712570487cb261a68c8ffe
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
429 data-length: 121536 (pure !)
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
430 data-length: 121536 (rust !)
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
431 data-length: 121088 (no-pure no-rust !)
44635
99ea74cbed74 nodemap: display percentage of unused in `hg debugnodemap`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44634
diff changeset
432 data-unused: 448 (pure !)
99ea74cbed74 nodemap: display percentage of unused in `hg debugnodemap`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44634
diff changeset
433 data-unused: 448 (rust !)
99ea74cbed74 nodemap: display percentage of unused in `hg debugnodemap`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44634
diff changeset
434 data-unused: 0 (no-pure no-rust !)
44785
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
435 data-unused: 0.369% (pure !)
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
436 data-unused: 0.369% (rust !)
44635
99ea74cbed74 nodemap: display percentage of unused in `hg debugnodemap`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44634
diff changeset
437 data-unused: 0.000% (no-pure no-rust !)
44634
01b0805534bb nodemap: make sure on disk change get rolled back with the transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44633
diff changeset
438 $ f --size --sha256 .hg/store/00changelog-*.nd
45052
91f4662b7fa7 test: restore expected output in test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44960
diff changeset
439 .hg/store/00changelog-????????????????.nd: size=121536, sha256=bb414468d225cf52d69132e1237afba34d4346ee2eb81b505027e6197b107f03 (glob) (pure !)
91f4662b7fa7 test: restore expected output in test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44960
diff changeset
440 .hg/store/00changelog-????????????????.nd: size=121536, sha256=909ac727bc4d1c0fda5f7bff3c620c98bd4a2967c143405a1503439e33b377da (glob) (rust !)
44785
2c073d82fbfa nodemap: create files in the repository used in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
441 .hg/store/00changelog-????????????????.nd: size=121088, sha256=342d36d30d86dde67d3cb6c002606c4a75bcad665595d941493845066d9c8ee0 (glob) (no-pure no-rust !)
44954
affe0fb42250 nodemap: fix validity checking when revlog is too short
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
442
affe0fb42250 nodemap: fix validity checking when revlog is too short
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
443 Check that removing content does not confuse the nodemap
affe0fb42250 nodemap: fix validity checking when revlog is too short
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
444 --------------------------------------------------------
affe0fb42250 nodemap: fix validity checking when revlog is too short
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
445
affe0fb42250 nodemap: fix validity checking when revlog is too short
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
446 removing data with rollback
affe0fb42250 nodemap: fix validity checking when revlog is too short
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
447
affe0fb42250 nodemap: fix validity checking when revlog is too short
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
448 $ echo aso > a
affe0fb42250 nodemap: fix validity checking when revlog is too short
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
449 $ hg ci -m a4
affe0fb42250 nodemap: fix validity checking when revlog is too short
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
450 $ hg rollback
affe0fb42250 nodemap: fix validity checking when revlog is too short
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
451 repository tip rolled back to revision 5005 (undo commit)
affe0fb42250 nodemap: fix validity checking when revlog is too short
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
452 working directory now based on revision 5005
affe0fb42250 nodemap: fix validity checking when revlog is too short
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
453 $ hg id -r .
44960
78cafd48b9b2 merge with stable
Augie Fackler <augie@google.com>
parents: 44841 44954
diff changeset
454 90d5d3ba2fc4 tip
44954
affe0fb42250 nodemap: fix validity checking when revlog is too short
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
455
affe0fb42250 nodemap: fix validity checking when revlog is too short
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
456 roming data with strip
affe0fb42250 nodemap: fix validity checking when revlog is too short
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
457
affe0fb42250 nodemap: fix validity checking when revlog is too short
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
458 $ echo aso > a
affe0fb42250 nodemap: fix validity checking when revlog is too short
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
459 $ hg ci -m a4
affe0fb42250 nodemap: fix validity checking when revlog is too short
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
460 $ hg --config extensions.strip= strip -r . --no-backup
affe0fb42250 nodemap: fix validity checking when revlog is too short
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
461 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
affe0fb42250 nodemap: fix validity checking when revlog is too short
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44636
diff changeset
462 $ hg id -r . --traceback
44960
78cafd48b9b2 merge with stable
Augie Fackler <augie@google.com>
parents: 44841 44954
diff changeset
463 90d5d3ba2fc4 tip
78cafd48b9b2 merge with stable
Augie Fackler <augie@google.com>
parents: 44841 44954
diff changeset
464
44841
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
465 Test upgrade / downgrade
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
466 ========================
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
467
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
468 downgrading
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
469
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
470 $ cat << EOF >> .hg/hgrc
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
471 > [format]
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
472 > use-persistent-nodemap=no
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
473 > EOF
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
474 $ hg debugformat -v
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
475 format-variant repo config default
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
476 fncache: yes yes yes
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
477 dotencode: yes yes yes
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
478 generaldelta: yes yes yes
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
479 sparserevlog: yes yes yes
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
480 sidedata: no no no
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
481 persistent-nodemap: yes no no
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
482 copies-sdc: no no no
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
483 plain-cl-delta: yes yes yes
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
484 compression: zlib zlib zlib
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
485 compression-level: default default default
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
486 $ hg debugupgraderepo --run --no-backup --quiet
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
487 upgrade will perform the following actions:
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
488
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
489 requirements
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
490 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
491 removed: persistent-nodemap
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
492
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
493 $ ls -1 .hg/store/ | egrep '00(changelog|manifest)(\.n|-.*\.nd)'
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
494 [1]
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
495 $ hg debugnodemap --metadata
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
496
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
497
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
498 upgrading
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
499
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
500 $ cat << EOF >> .hg/hgrc
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
501 > [format]
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
502 > use-persistent-nodemap=yes
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
503 > EOF
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
504 $ hg debugformat -v
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
505 format-variant repo config default
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
506 fncache: yes yes yes
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
507 dotencode: yes yes yes
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
508 generaldelta: yes yes yes
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
509 sparserevlog: yes yes yes
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
510 sidedata: no no no
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
511 persistent-nodemap: no yes no
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
512 copies-sdc: no no no
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
513 plain-cl-delta: yes yes yes
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
514 compression: zlib zlib zlib
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
515 compression-level: default default default
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
516 $ hg debugupgraderepo --run --no-backup --quiet
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
517 upgrade will perform the following actions:
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
518
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
519 requirements
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
520 preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
521 added: persistent-nodemap
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
522
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
523 $ ls -1 .hg/store/ | egrep '00(changelog|manifest)(\.n|-.*\.nd)'
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
524 00changelog-*.nd (glob)
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
525 00changelog.n
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
526 00manifest-*.nd (glob)
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
527 00manifest.n
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
528
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
529 $ hg debugnodemap --metadata
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
530 uid: * (glob)
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
531 tip-rev: 5005
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
532 tip-node: 90d5d3ba2fc47db50f712570487cb261a68c8ffe
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
533 data-length: 121088
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
534 data-unused: 0
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
535 data-unused: 0.000%
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
536
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
537 Running unrelated upgrade
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
538
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
539 $ hg debugupgraderepo --run --no-backup --quiet --optimize re-delta-all
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
540 upgrade will perform the following actions:
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
541
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
542 requirements
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
543 preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, sparserevlog, store
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
544
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
545 optimisations: re-delta-all
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
546
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
547 $ ls -1 .hg/store/ | egrep '00(changelog|manifest)(\.n|-.*\.nd)'
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
548 00changelog-*.nd (glob)
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
549 00changelog.n
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
550 00manifest-*.nd (glob)
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
551 00manifest.n
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
552
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
553 $ hg debugnodemap --metadata
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
554 uid: * (glob)
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
555 tip-rev: 5005
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
556 tip-node: 90d5d3ba2fc47db50f712570487cb261a68c8ffe
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
557 data-length: 121088
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
558 data-unused: 0
526d69eeea31 upgrade: support upgrade and downgrade from persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44799
diff changeset
559 data-unused: 0.000%