annotate tests/test-persistent-nodemap.t @ 44634:01b0805534bb

nodemap: make sure on disk change get rolled back with the transaction In case of errors, we need to rollback the change made to the persistent nodemap. Differential Revision: https://phab.mercurial-scm.org/D8191
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Fri, 28 Feb 2020 03:05:52 +0100
parents dd5b47fb0860
children 99ea74cbed74
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
c577bb4a04d4 nodemap: have some python code writing a nodemap in persistent binary form
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
5 $ hg init test-repo
c577bb4a04d4 nodemap: have some python code writing a nodemap in persistent binary form
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
6 $ cd test-repo
44308
5962fd0d1045 nodemap: write nodemap data on disk
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44307
diff changeset
7 $ cat << EOF >> .hg/hgrc
5962fd0d1045 nodemap: write nodemap data on disk
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44307
diff changeset
8 > [experimental]
5962fd0d1045 nodemap: write nodemap data on disk
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44307
diff changeset
9 > exp-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
10 > [devel]
6f9e8e142cea nodemap: add a (python) index class for persistent nodemap testing
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44312
diff changeset
11 > persistent-nodemap=yes
44308
5962fd0d1045 nodemap: write nodemap data on disk
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44307
diff changeset
12 > EOF
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
13 $ hg debugbuilddag .+5000
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
14 $ 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
15 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
16 tip-rev: 5000
44515
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
17 tip-node: 06ddac466af534d365326c13c3879f97caca3cb1
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
18 data-length: 122880
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
19 data-unused: 0
44311
2b72c4ff8ed1 nodemap: use an intermediate "docket" file to carry small metadata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44309
diff changeset
20 $ 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
21 .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
22
23df5ecfa365 nodemap: check that a simple lookup works fine
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44445
diff changeset
23 Simple lookup works
23df5ecfa365 nodemap: check that a simple lookup works fine
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44445
diff changeset
24
23df5ecfa365 nodemap: check that a simple lookup works fine
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44445
diff changeset
25 $ 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
26 $ 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
27 5000
23df5ecfa365 nodemap: check that a simple lookup works fine
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44445
diff changeset
28
44513
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
29
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
30 #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
31
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
32 $ f --sha256 .hg/store/00changelog-*.nd
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
33 .hg/store/00changelog-????????????????.nd: sha256=1e38e9ffaa45cad13f15c1a9880ad606f4241e8beea2f61b4d5365abadfb55f6 (glob)
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
34 $ hg debugnodemap --dump-new | f --sha256 --size
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
35 size=122880, sha256=1e38e9ffaa45cad13f15c1a9880ad606f4241e8beea2f61b4d5365abadfb55f6
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
36 $ hg debugnodemap --dump-disk | f --sha256 --bytes=256 --hexdump --size
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
37 size=122880, sha256=1e38e9ffaa45cad13f15c1a9880ad606f4241e8beea2f61b4d5365abadfb55f6
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
38 0000: 00 00 00 76 00 00 01 65 00 00 00 95 00 00 01 34 |...v...e.......4|
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
39 0010: 00 00 00 19 00 00 01 69 00 00 00 ab 00 00 00 4b |.......i.......K|
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
40 0020: 00 00 00 07 00 00 01 4c 00 00 00 f8 00 00 00 8f |.......L........|
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
41 0030: 00 00 00 c0 00 00 00 a7 00 00 00 89 00 00 01 46 |...............F|
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
42 0040: 00 00 00 92 00 00 01 bc 00 00 00 71 00 00 00 ac |...........q....|
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
43 0050: 00 00 00 af 00 00 00 b4 00 00 00 34 00 00 01 ca |...........4....|
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
44 0060: 00 00 00 23 00 00 01 45 00 00 00 2d 00 00 00 b2 |...#...E...-....|
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
45 0070: 00 00 00 56 00 00 01 0f 00 00 00 4e 00 00 02 4c |...V.......N...L|
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
46 0080: 00 00 00 e7 00 00 00 cd 00 00 01 5b 00 00 00 78 |...........[...x|
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
47 0090: 00 00 00 e3 00 00 01 8e 00 00 00 4f 00 00 00 b1 |...........O....|
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
48 00a0: 00 00 00 30 00 00 00 11 00 00 00 25 00 00 00 d2 |...0.......%....|
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
49 00b0: 00 00 00 ec 00 00 00 69 00 00 01 2b 00 00 01 2e |.......i...+....|
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
50 00c0: 00 00 00 aa 00 00 00 15 00 00 00 3a 00 00 01 4e |...........:...N|
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
51 00d0: 00 00 00 4d 00 00 00 9d 00 00 00 8e 00 00 00 a4 |...M............|
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
52 00e0: 00 00 00 c3 00 00 00 eb 00 00 00 29 00 00 00 ad |...........)....|
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
53 00f0: 00 00 01 3a 00 00 01 32 00 00 00 04 00 00 00 53 |...:...2.......S|
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
54
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
55
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
56 #else
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
57
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
58 $ f --sha256 .hg/store/00changelog-*.nd
563dfdfd01a4 nodemap: delete older raw data file when creating a new ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44311
diff changeset
59 .hg/store/00changelog-????????????????.nd: sha256=b961925120e1c9bc345c199b2cc442abc477029fdece37ef9d99cbe59c0558b7 (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
60 $ hg debugnodemap --dump-new | f --sha256 --size
44308
5962fd0d1045 nodemap: write nodemap data on disk
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44307
diff changeset
61 size=122880, sha256=b961925120e1c9bc345c199b2cc442abc477029fdece37ef9d99cbe59c0558b7
44309
6c07480d6659 nodemap: add a function to read the data from disk
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44308
diff changeset
62 $ hg debugnodemap --dump-disk | f --sha256 --bytes=256 --hexdump --size
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
63 size=122880, sha256=b961925120e1c9bc345c199b2cc442abc477029fdece37ef9d99cbe59c0558b7
c577bb4a04d4 nodemap: have some python code writing a nodemap in persistent binary form
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
64 0000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
c577bb4a04d4 nodemap: have some python code writing a nodemap in persistent binary form
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
65 0010: ff ff ff ff ff ff ff ff ff ff fa c2 ff ff ff ff |................|
c577bb4a04d4 nodemap: have some python code writing a nodemap in persistent binary form
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
66 0020: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
c577bb4a04d4 nodemap: have some python code writing a nodemap in persistent binary form
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
67 0030: ff ff ff ff ff ff ed b3 ff ff ff ff ff ff ff ff |................|
c577bb4a04d4 nodemap: have some python code writing a nodemap in persistent binary form
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
68 0040: ff ff ff ff ff ff ee 34 00 00 00 00 ff ff ff ff |.......4........|
c577bb4a04d4 nodemap: have some python code writing a nodemap in persistent binary form
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
69 0050: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
c577bb4a04d4 nodemap: have some python code writing a nodemap in persistent binary form
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
70 0060: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
c577bb4a04d4 nodemap: have some python code writing a nodemap in persistent binary form
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
71 0070: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
c577bb4a04d4 nodemap: have some python code writing a nodemap in persistent binary form
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
72 0080: ff ff ff ff ff ff f8 50 ff ff ff ff ff ff ff ff |.......P........|
c577bb4a04d4 nodemap: have some python code writing a nodemap in persistent binary form
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
73 0090: ff ff ff ff ff ff ff ff ff ff ec c7 ff ff ff ff |................|
c577bb4a04d4 nodemap: have some python code writing a nodemap in persistent binary form
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
74 00a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
c577bb4a04d4 nodemap: have some python code writing a nodemap in persistent binary form
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
75 00b0: ff ff ff ff ff ff fa be ff ff f2 fc ff ff ff ff |................|
c577bb4a04d4 nodemap: have some python code writing a nodemap in persistent binary form
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
76 00c0: ff ff ff ff ff ff ef ea ff ff ff ff ff ff f9 17 |................|
c577bb4a04d4 nodemap: have some python code writing a nodemap in persistent binary form
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
77 00d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
c577bb4a04d4 nodemap: have some python code writing a nodemap in persistent binary form
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
78 00e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
c577bb4a04d4 nodemap: have some python code writing a nodemap in persistent binary form
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
79 00f0: ff ff ff ff ff ff ff ff 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
80
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
81 #endif
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
82
44318
20e125cdd719 nodemap: add basic checking of the on disk nodemap content
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44313
diff changeset
83 $ 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
84 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
85 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
86
563dfdfd01a4 nodemap: delete older raw data file when creating a new ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44311
diff changeset
87 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
88
563dfdfd01a4 nodemap: delete older raw data file when creating a new ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44311
diff changeset
89 $ hg up
563dfdfd01a4 nodemap: delete older raw data file when creating a new ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44311
diff changeset
90 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
563dfdfd01a4 nodemap: delete older raw data file when creating a new ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44311
diff changeset
91 $ 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
92 $ hg add 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
93 $ 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
94
44513
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
95 #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
96 $ 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
97 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
98 tip-rev: 5001
44515
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
99 tip-node: 2dd9b5258caa46469ff07d4a3da1eb3529a51f49
44513
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
100 data-length: 122880
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
101 data-unused: 0
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
102 #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
103 $ 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
104 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
105 tip-rev: 5001
44515
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
106 tip-node: 2dd9b5258caa46469ff07d4a3da1eb3529a51f49
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
107 data-length: 123072
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
108 data-unused: 192
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
109 #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
110
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
111 $ 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
112 .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
113
50ad851efd9b nodemap: introduce append-only incremental update of the persistent data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44318
diff changeset
114 (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
115
50ad851efd9b nodemap: introduce append-only incremental update of the persistent data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44318
diff changeset
116 #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
117 $ f --sha256 .hg/store/00changelog-*.nd --size
50ad851efd9b nodemap: introduce append-only incremental update of the persistent data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44318
diff changeset
118 .hg/store/00changelog-????????????????.nd: size=123072, sha256=136472751566c8198ff09e306a7d2f9bd18bd32298d614752b73da4d6df23340 (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
119 #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
120
44513
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
121 #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
122 $ f --sha256 .hg/store/00changelog-*.nd --size
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
123 .hg/store/00changelog-????????????????.nd: size=123072, sha256=ccc8a43310ace13812fcc648683e259346754ef934c12dd238cf9b7fadfe9a4b (glob)
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
124 #endif
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
125
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
126 #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
127 $ f --sha256 .hg/store/00changelog-*.nd --size
563dfdfd01a4 nodemap: delete older raw data file when creating a new ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44311
diff changeset
128 .hg/store/00changelog-????????????????.nd: size=122880, sha256=bfafebd751c4f6d116a76a37a1dee2a251747affe7efbcc4f4842ccc746d4db9 (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
129 #endif
50ad851efd9b nodemap: introduce append-only incremental update of the persistent data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44318
diff changeset
130
44318
20e125cdd719 nodemap: add basic checking of the on disk nodemap content
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44313
diff changeset
131 $ 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
132 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
133 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
134
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
135 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
136 ---------------------------
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
137
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
138 $ 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
139 $ hg add 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
140 $ hg ci -m 'bar' --config experimental.exp-persistent-nodemap.mmap=no
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
141
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
142 $ hg debugnodemap --check --config experimental.exp-persistent-nodemap.mmap=yes
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
143 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
144 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
145 $ hg debugnodemap --check --config experimental.exp-persistent-nodemap.mmap=no
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
146 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
147 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
148
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
149
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
150 #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
151 $ 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
152 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
153 tip-rev: 5002
44515
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
154 tip-node: 6ce944fafcee85af91f29ea5b51654cc6101ad7e
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
155 data-length: 123328
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
156 data-unused: 384
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
157 $ f --sha256 .hg/store/00changelog-*.nd --size
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
158 .hg/store/00changelog-????????????????.nd: size=123328, sha256=10d26e9776b6596af0f89143a54eba8cc581e929c38242a02a7b0760698c6c70 (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
159 #endif
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
160 #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
161 $ 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
162 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
163 tip-rev: 5002
44515
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
164 tip-node: 6ce944fafcee85af91f29ea5b51654cc6101ad7e
44513
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
165 data-length: 123328
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
166 data-unused: 384
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
167 $ f --sha256 .hg/store/00changelog-*.nd --size
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
168 .hg/store/00changelog-????????????????.nd: size=123328, sha256=081eec9eb6708f2bf085d939b4c97bc0b6762bc8336bc4b93838f7fffa1516bf (glob)
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
169 #endif
e7fff9c3cdac rust-nodemap: automatically use the rust index for persistent nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44495
diff changeset
170 #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
171 $ 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
172 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
173 tip-rev: 5002
44515
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
174 tip-node: 6ce944fafcee85af91f29ea5b51654cc6101ad7e
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
175 data-length: 122944
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
176 data-unused: 0
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 $ f --sha256 .hg/store/00changelog-*.nd --size
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 .hg/store/00changelog-????????????????.nd: size=122944, sha256=755976b22b64ab680401b45395953504e64e7fa8c31ac570f58dee21e15f9bc0 (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
179 #endif
44445
336ec75ed1ac nodemap: warm the persistent nodemap on disk with debugupdatecache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44363
diff changeset
180
336ec75ed1ac nodemap: warm the persistent nodemap on disk with debugupdatecache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44363
diff changeset
181 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
182
336ec75ed1ac nodemap: warm the persistent nodemap on disk with debugupdatecache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44363
diff changeset
183 $ 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
184 $ 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
185 $ hg debugupdatecache
336ec75ed1ac nodemap: warm the persistent nodemap on disk with debugupdatecache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44363
diff changeset
186 #if pure
336ec75ed1ac nodemap: warm the persistent nodemap on disk with debugupdatecache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44363
diff changeset
187 $ 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
188 uid: ???????????????? (glob)
336ec75ed1ac nodemap: warm the persistent nodemap on disk with debugupdatecache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44363
diff changeset
189 tip-rev: 5002
44515
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
190 tip-node: 6ce944fafcee85af91f29ea5b51654cc6101ad7e
44445
336ec75ed1ac nodemap: warm the persistent nodemap on disk with debugupdatecache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44363
diff changeset
191 data-length: 122944
336ec75ed1ac nodemap: warm the persistent nodemap on disk with debugupdatecache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44363
diff changeset
192 data-unused: 0
336ec75ed1ac nodemap: warm the persistent nodemap on disk with debugupdatecache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44363
diff changeset
193 #else
336ec75ed1ac nodemap: warm the persistent nodemap on disk with debugupdatecache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44363
diff changeset
194 $ 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
195 uid: ???????????????? (glob)
336ec75ed1ac nodemap: warm the persistent nodemap on disk with debugupdatecache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44363
diff changeset
196 tip-rev: 5002
44515
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
197 tip-node: 6ce944fafcee85af91f29ea5b51654cc6101ad7e
44445
336ec75ed1ac nodemap: warm the persistent nodemap on disk with debugupdatecache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44363
diff changeset
198 data-length: 122944
336ec75ed1ac nodemap: warm the persistent nodemap on disk with debugupdatecache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44363
diff changeset
199 data-unused: 0
336ec75ed1ac nodemap: warm the persistent nodemap on disk with debugupdatecache
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44363
diff changeset
200 #endif
44495
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
201
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
202 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
203 =========================
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
204
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
205 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
206
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
207 $ 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
208 $ 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
209
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
210 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
211 ----------------------
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
212
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
213 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
214
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
215 $ 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
216 $ 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
217 $ 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
218 $ 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
219 5003
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
220
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
221 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
222
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
223 $ 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
224 uid: ???????????????? (glob)
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
225 tip-rev: 5003
44515
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
226 tip-node: 5c049e9c4a4af159bdcd65dce1b6bf303a0da6cf
44495
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
227 data-length: 123200 (pure !)
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
228 data-length: 123200 (rust !)
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
229 data-length: 122944 (no-rust no-pure !)
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
230 data-unused: 256 (pure !)
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
231 data-unused: 256 (rust !)
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
232 data-unused: 0 (no-rust no-pure !)
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
233 $ 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
234 $ 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
235 uid: ???????????????? (glob)
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
236 tip-rev: 5002
44515
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
237 tip-node: 6ce944fafcee85af91f29ea5b51654cc6101ad7e
44495
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
238 data-length: 122944
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
239 data-unused: 0
1376cb1c8e34 nodemap: test that an outdated nodemap can catch up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
240 $ 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
241 5003
44515
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
242
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
243 changelog altered
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
244 -----------------
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
245
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
246 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
247 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
248 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
249
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
250 $ hg up "$NODE~5"
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
251 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
252 $ echo bar > babar
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
253 $ hg add babar
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
254 $ hg ci -m 'babar'
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
255 created new head
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
256 $ 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
257 $ 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
258 5004
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
259
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
260 $ 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
261
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
262 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
263
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
264 $ hg debugnodemap --metadata
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
265 uid: ???????????????? (glob)
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
266 tip-rev: 5002
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
267 tip-node: 42bf3068c7ddfdfded53c4eb11d02266faeebfee
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
268 data-length: 123456 (pure !)
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
269 data-length: 246464 (rust !)
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
270 data-length: 123008 (no-pure no-rust !)
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
271 data-unused: 448 (pure !)
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
272 data-unused: 123904 (rust !)
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
273 data-unused: 0 (no-pure no-rust !)
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
274
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
275 $ 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
276 $ hg debugnodemap --metadata
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
277 uid: ???????????????? (glob)
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
278 tip-rev: 5002
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
279 tip-node: 6ce944fafcee85af91f29ea5b51654cc6101ad7e
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
280 data-length: 122944
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
281 data-unused: 0
6c906eaedd0d nodemap: track the tip_node for validation
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44513
diff changeset
282 $ 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
283 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
284
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
285 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
286 ==================================
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
287
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
288 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
289
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
290 $ 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
291 $ 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
292 $ 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
293 $ 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
294 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
295 tip-rev: 5003
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
296 tip-node: c91af76d172f1053cca41b83f7c2e4e514fe2bcf
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
297 data-length: 123008
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
298 data-unused: 0
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
299 $ 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
300 $ 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
301 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
302 tip-rev: 5004
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
303 tip-node: ba87cd9559559e4b91b28cb140d003985315e031
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
304 data-length: 123328 (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
305 data-length: 123328 (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
306 data-length: 123136 (no-pure no-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
307 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
308 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
309 data-unused: 0 (no-pure no-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
310 $ 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
311 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
312 tip-rev: 5004
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
313 tip-node: ba87cd9559559e4b91b28cb140d003985315e031
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
314 data-length: 123328 (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
315 data-length: 123328 (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
316 data-length: 123136 (no-pure no-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
317 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
318 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
319 data-unused: 0 (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
320
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44516
diff changeset
321 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
322
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44516
diff changeset
323 $ 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
324 $ 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
325 $ 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
326 > --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
327 > --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
328
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44516
diff changeset
329 (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
330
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44516
diff changeset
331 $ 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
332 > 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
333 > 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
334 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
335 tip-rev: 5004
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44516
diff changeset
336 tip-node: ba87cd9559559e4b91b28cb140d003985315e031
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44516
diff changeset
337 data-length: 123328 (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
338 data-length: 123328 (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
339 data-length: 123136 (no-pure no-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
340 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
341 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
342 data-unused: 0 (no-pure no-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
343 $ 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
344 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
345 tip-rev: 5005
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44516
diff changeset
346 tip-node: bae4d45c759e30f1cb1a40e1382cf0e0414154db
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44516
diff changeset
347 data-length: 123584 (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
348 data-length: 123584 (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
349 data-length: 123136 (no-pure no-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
350 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
351 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
352 data-unused: 0 (no-pure no-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
353
dd5b47fb0860 nodemap: test that concurrent process don't see the pending transaction
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44516
diff changeset
354 $ 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
355
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
356 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
357
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
358 $ 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
359 $ f --size --sha256 .hg/store/00changelog-*.nd
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
360 .hg/store/00changelog-????????????????.nd: size=123584, sha256=8c6cef6fd3d3fac291968793ee19a4be6d0b8375e9508bd5c7d4a8879e8df180 (glob) (pure !)
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
361 .hg/store/00changelog-????????????????.nd: size=123584, sha256=eb9e9a4bcafdb5e1344bc8a0cbb3288b2106413b8efae6265fb8a7973d7e97f9 (glob) (rust !)
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
362 .hg/store/00changelog-????????????????.nd: size=123136, sha256=4f504f5a834db3811ced50ab3e9e80bcae3581bb0f9b13a7a9f94b7fc34bcebe (glob) (no-pure no-rust !)
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
363 $ 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
364 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
365 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
366 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
367 [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
368 $ 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
369 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
370 tip-rev: 5005
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
371 tip-node: bae4d45c759e30f1cb1a40e1382cf0e0414154db
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
372 data-length: 123584
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
373 data-unused: 448
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
374 $ f --size --sha256 .hg/store/00changelog-*.nd
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
375 .hg/store/00changelog-????????????????.nd: size=123584, sha256=8c6cef6fd3d3fac291968793ee19a4be6d0b8375e9508bd5c7d4a8879e8df180 (glob) (pure !)
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
376 .hg/store/00changelog-????????????????.nd: size=123584, sha256=eb9e9a4bcafdb5e1344bc8a0cbb3288b2106413b8efae6265fb8a7973d7e97f9 (glob) (rust !)
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
377 .hg/store/00changelog-????????????????.nd: size=123136, sha256=4f504f5a834db3811ced50ab3e9e80bcae3581bb0f9b13a7a9f94b7fc34bcebe (glob) (no-pure no-rust !)