##// END OF EJS Templates
rbc: test case for incorrect and too aggressive invalidation of invalid caches
Mads Kiilerich -
r29614:5c79bae8 stable
parent child Browse files
Show More
@@ -1,670 +1,703 b''
1 $ hg init a
1 $ hg init a
2 $ cd a
2 $ cd a
3 $ echo 'root' >root
3 $ echo 'root' >root
4 $ hg add root
4 $ hg add root
5 $ hg commit -d '0 0' -m "Adding root node"
5 $ hg commit -d '0 0' -m "Adding root node"
6
6
7 $ echo 'a' >a
7 $ echo 'a' >a
8 $ hg add a
8 $ hg add a
9 $ hg branch a
9 $ hg branch a
10 marked working directory as branch a
10 marked working directory as branch a
11 (branches are permanent and global, did you want a bookmark?)
11 (branches are permanent and global, did you want a bookmark?)
12 $ hg commit -d '1 0' -m "Adding a branch"
12 $ hg commit -d '1 0' -m "Adding a branch"
13
13
14 $ hg branch q
14 $ hg branch q
15 marked working directory as branch q
15 marked working directory as branch q
16 $ echo 'aa' >a
16 $ echo 'aa' >a
17 $ hg branch -C
17 $ hg branch -C
18 reset working directory to branch a
18 reset working directory to branch a
19 $ hg commit -d '2 0' -m "Adding to a branch"
19 $ hg commit -d '2 0' -m "Adding to a branch"
20
20
21 $ hg update -C 0
21 $ hg update -C 0
22 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
22 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
23 $ echo 'b' >b
23 $ echo 'b' >b
24 $ hg add b
24 $ hg add b
25 $ hg branch b
25 $ hg branch b
26 marked working directory as branch b
26 marked working directory as branch b
27 $ hg commit -d '2 0' -m "Adding b branch"
27 $ hg commit -d '2 0' -m "Adding b branch"
28
28
29 $ echo 'bh1' >bh1
29 $ echo 'bh1' >bh1
30 $ hg add bh1
30 $ hg add bh1
31 $ hg commit -d '3 0' -m "Adding b branch head 1"
31 $ hg commit -d '3 0' -m "Adding b branch head 1"
32
32
33 $ hg update -C 2
33 $ hg update -C 2
34 1 files updated, 0 files merged, 2 files removed, 0 files unresolved
34 1 files updated, 0 files merged, 2 files removed, 0 files unresolved
35 $ echo 'bh2' >bh2
35 $ echo 'bh2' >bh2
36 $ hg add bh2
36 $ hg add bh2
37 $ hg commit -d '4 0' -m "Adding b branch head 2"
37 $ hg commit -d '4 0' -m "Adding b branch head 2"
38
38
39 $ echo 'c' >c
39 $ echo 'c' >c
40 $ hg add c
40 $ hg add c
41 $ hg branch c
41 $ hg branch c
42 marked working directory as branch c
42 marked working directory as branch c
43 $ hg commit -d '5 0' -m "Adding c branch"
43 $ hg commit -d '5 0' -m "Adding c branch"
44
44
45 reserved names
45 reserved names
46
46
47 $ hg branch tip
47 $ hg branch tip
48 abort: the name 'tip' is reserved
48 abort: the name 'tip' is reserved
49 [255]
49 [255]
50 $ hg branch null
50 $ hg branch null
51 abort: the name 'null' is reserved
51 abort: the name 'null' is reserved
52 [255]
52 [255]
53 $ hg branch .
53 $ hg branch .
54 abort: the name '.' is reserved
54 abort: the name '.' is reserved
55 [255]
55 [255]
56
56
57 invalid characters
57 invalid characters
58
58
59 $ hg branch 'foo:bar'
59 $ hg branch 'foo:bar'
60 abort: ':' cannot be used in a name
60 abort: ':' cannot be used in a name
61 [255]
61 [255]
62
62
63 $ hg branch 'foo
63 $ hg branch 'foo
64 > bar'
64 > bar'
65 abort: '\n' cannot be used in a name
65 abort: '\n' cannot be used in a name
66 [255]
66 [255]
67
67
68 trailing or leading spaces should be stripped before testing duplicates
68 trailing or leading spaces should be stripped before testing duplicates
69
69
70 $ hg branch 'b '
70 $ hg branch 'b '
71 abort: a branch of the same name already exists
71 abort: a branch of the same name already exists
72 (use 'hg update' to switch to it)
72 (use 'hg update' to switch to it)
73 [255]
73 [255]
74
74
75 $ hg branch ' b'
75 $ hg branch ' b'
76 abort: a branch of the same name already exists
76 abort: a branch of the same name already exists
77 (use 'hg update' to switch to it)
77 (use 'hg update' to switch to it)
78 [255]
78 [255]
79
79
80 verify update will accept invalid legacy branch names
80 verify update will accept invalid legacy branch names
81
81
82 $ hg init test-invalid-branch-name
82 $ hg init test-invalid-branch-name
83 $ cd test-invalid-branch-name
83 $ cd test-invalid-branch-name
84 $ hg pull -u "$TESTDIR"/bundles/test-invalid-branch-name.hg
84 $ hg pull -u "$TESTDIR"/bundles/test-invalid-branch-name.hg
85 pulling from *test-invalid-branch-name.hg (glob)
85 pulling from *test-invalid-branch-name.hg (glob)
86 requesting all changes
86 requesting all changes
87 adding changesets
87 adding changesets
88 adding manifests
88 adding manifests
89 adding file changes
89 adding file changes
90 added 3 changesets with 3 changes to 2 files
90 added 3 changesets with 3 changes to 2 files
91 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
91 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
92
92
93 $ hg update '"colon:test"'
93 $ hg update '"colon:test"'
94 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
94 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
95 $ cd ..
95 $ cd ..
96
96
97 $ echo 'd' >d
97 $ echo 'd' >d
98 $ hg add d
98 $ hg add d
99 $ hg branch 'a branch name much longer than the default justification used by branches'
99 $ hg branch 'a branch name much longer than the default justification used by branches'
100 marked working directory as branch a branch name much longer than the default justification used by branches
100 marked working directory as branch a branch name much longer than the default justification used by branches
101 $ hg commit -d '6 0' -m "Adding d branch"
101 $ hg commit -d '6 0' -m "Adding d branch"
102
102
103 $ hg branches
103 $ hg branches
104 a branch name much longer than the default justification used by branches 7:10ff5895aa57
104 a branch name much longer than the default justification used by branches 7:10ff5895aa57
105 b 4:aee39cd168d0
105 b 4:aee39cd168d0
106 c 6:589736a22561 (inactive)
106 c 6:589736a22561 (inactive)
107 a 5:d8cbc61dbaa6 (inactive)
107 a 5:d8cbc61dbaa6 (inactive)
108 default 0:19709c5a4e75 (inactive)
108 default 0:19709c5a4e75 (inactive)
109
109
110 -------
110 -------
111
111
112 $ hg branches -a
112 $ hg branches -a
113 a branch name much longer than the default justification used by branches 7:10ff5895aa57
113 a branch name much longer than the default justification used by branches 7:10ff5895aa57
114 b 4:aee39cd168d0
114 b 4:aee39cd168d0
115
115
116 --- Branch a
116 --- Branch a
117
117
118 $ hg log -b a
118 $ hg log -b a
119 changeset: 5:d8cbc61dbaa6
119 changeset: 5:d8cbc61dbaa6
120 branch: a
120 branch: a
121 parent: 2:881fe2b92ad0
121 parent: 2:881fe2b92ad0
122 user: test
122 user: test
123 date: Thu Jan 01 00:00:04 1970 +0000
123 date: Thu Jan 01 00:00:04 1970 +0000
124 summary: Adding b branch head 2
124 summary: Adding b branch head 2
125
125
126 changeset: 2:881fe2b92ad0
126 changeset: 2:881fe2b92ad0
127 branch: a
127 branch: a
128 user: test
128 user: test
129 date: Thu Jan 01 00:00:02 1970 +0000
129 date: Thu Jan 01 00:00:02 1970 +0000
130 summary: Adding to a branch
130 summary: Adding to a branch
131
131
132 changeset: 1:dd6b440dd85a
132 changeset: 1:dd6b440dd85a
133 branch: a
133 branch: a
134 user: test
134 user: test
135 date: Thu Jan 01 00:00:01 1970 +0000
135 date: Thu Jan 01 00:00:01 1970 +0000
136 summary: Adding a branch
136 summary: Adding a branch
137
137
138
138
139 ---- Branch b
139 ---- Branch b
140
140
141 $ hg log -b b
141 $ hg log -b b
142 changeset: 4:aee39cd168d0
142 changeset: 4:aee39cd168d0
143 branch: b
143 branch: b
144 user: test
144 user: test
145 date: Thu Jan 01 00:00:03 1970 +0000
145 date: Thu Jan 01 00:00:03 1970 +0000
146 summary: Adding b branch head 1
146 summary: Adding b branch head 1
147
147
148 changeset: 3:ac22033332d1
148 changeset: 3:ac22033332d1
149 branch: b
149 branch: b
150 parent: 0:19709c5a4e75
150 parent: 0:19709c5a4e75
151 user: test
151 user: test
152 date: Thu Jan 01 00:00:02 1970 +0000
152 date: Thu Jan 01 00:00:02 1970 +0000
153 summary: Adding b branch
153 summary: Adding b branch
154
154
155
155
156 ---- going to test branch closing
156 ---- going to test branch closing
157
157
158 $ hg branches
158 $ hg branches
159 a branch name much longer than the default justification used by branches 7:10ff5895aa57
159 a branch name much longer than the default justification used by branches 7:10ff5895aa57
160 b 4:aee39cd168d0
160 b 4:aee39cd168d0
161 c 6:589736a22561 (inactive)
161 c 6:589736a22561 (inactive)
162 a 5:d8cbc61dbaa6 (inactive)
162 a 5:d8cbc61dbaa6 (inactive)
163 default 0:19709c5a4e75 (inactive)
163 default 0:19709c5a4e75 (inactive)
164 $ hg up -C b
164 $ hg up -C b
165 2 files updated, 0 files merged, 4 files removed, 0 files unresolved
165 2 files updated, 0 files merged, 4 files removed, 0 files unresolved
166 $ echo 'xxx1' >> b
166 $ echo 'xxx1' >> b
167 $ hg commit -d '7 0' -m 'adding cset to branch b'
167 $ hg commit -d '7 0' -m 'adding cset to branch b'
168 $ hg up -C aee39cd168d0
168 $ hg up -C aee39cd168d0
169 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
169 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
170 $ echo 'xxx2' >> b
170 $ echo 'xxx2' >> b
171 $ hg commit -d '8 0' -m 'adding head to branch b'
171 $ hg commit -d '8 0' -m 'adding head to branch b'
172 created new head
172 created new head
173 $ echo 'xxx3' >> b
173 $ echo 'xxx3' >> b
174 $ hg commit -d '9 0' -m 'adding another cset to branch b'
174 $ hg commit -d '9 0' -m 'adding another cset to branch b'
175 $ hg branches
175 $ hg branches
176 b 10:bfbe841b666e
176 b 10:bfbe841b666e
177 a branch name much longer than the default justification used by branches 7:10ff5895aa57
177 a branch name much longer than the default justification used by branches 7:10ff5895aa57
178 c 6:589736a22561 (inactive)
178 c 6:589736a22561 (inactive)
179 a 5:d8cbc61dbaa6 (inactive)
179 a 5:d8cbc61dbaa6 (inactive)
180 default 0:19709c5a4e75 (inactive)
180 default 0:19709c5a4e75 (inactive)
181 $ hg heads --closed
181 $ hg heads --closed
182 changeset: 10:bfbe841b666e
182 changeset: 10:bfbe841b666e
183 branch: b
183 branch: b
184 tag: tip
184 tag: tip
185 user: test
185 user: test
186 date: Thu Jan 01 00:00:09 1970 +0000
186 date: Thu Jan 01 00:00:09 1970 +0000
187 summary: adding another cset to branch b
187 summary: adding another cset to branch b
188
188
189 changeset: 8:eebb944467c9
189 changeset: 8:eebb944467c9
190 branch: b
190 branch: b
191 parent: 4:aee39cd168d0
191 parent: 4:aee39cd168d0
192 user: test
192 user: test
193 date: Thu Jan 01 00:00:07 1970 +0000
193 date: Thu Jan 01 00:00:07 1970 +0000
194 summary: adding cset to branch b
194 summary: adding cset to branch b
195
195
196 changeset: 7:10ff5895aa57
196 changeset: 7:10ff5895aa57
197 branch: a branch name much longer than the default justification used by branches
197 branch: a branch name much longer than the default justification used by branches
198 user: test
198 user: test
199 date: Thu Jan 01 00:00:06 1970 +0000
199 date: Thu Jan 01 00:00:06 1970 +0000
200 summary: Adding d branch
200 summary: Adding d branch
201
201
202 changeset: 6:589736a22561
202 changeset: 6:589736a22561
203 branch: c
203 branch: c
204 user: test
204 user: test
205 date: Thu Jan 01 00:00:05 1970 +0000
205 date: Thu Jan 01 00:00:05 1970 +0000
206 summary: Adding c branch
206 summary: Adding c branch
207
207
208 changeset: 5:d8cbc61dbaa6
208 changeset: 5:d8cbc61dbaa6
209 branch: a
209 branch: a
210 parent: 2:881fe2b92ad0
210 parent: 2:881fe2b92ad0
211 user: test
211 user: test
212 date: Thu Jan 01 00:00:04 1970 +0000
212 date: Thu Jan 01 00:00:04 1970 +0000
213 summary: Adding b branch head 2
213 summary: Adding b branch head 2
214
214
215 changeset: 0:19709c5a4e75
215 changeset: 0:19709c5a4e75
216 user: test
216 user: test
217 date: Thu Jan 01 00:00:00 1970 +0000
217 date: Thu Jan 01 00:00:00 1970 +0000
218 summary: Adding root node
218 summary: Adding root node
219
219
220 $ hg heads
220 $ hg heads
221 changeset: 10:bfbe841b666e
221 changeset: 10:bfbe841b666e
222 branch: b
222 branch: b
223 tag: tip
223 tag: tip
224 user: test
224 user: test
225 date: Thu Jan 01 00:00:09 1970 +0000
225 date: Thu Jan 01 00:00:09 1970 +0000
226 summary: adding another cset to branch b
226 summary: adding another cset to branch b
227
227
228 changeset: 8:eebb944467c9
228 changeset: 8:eebb944467c9
229 branch: b
229 branch: b
230 parent: 4:aee39cd168d0
230 parent: 4:aee39cd168d0
231 user: test
231 user: test
232 date: Thu Jan 01 00:00:07 1970 +0000
232 date: Thu Jan 01 00:00:07 1970 +0000
233 summary: adding cset to branch b
233 summary: adding cset to branch b
234
234
235 changeset: 7:10ff5895aa57
235 changeset: 7:10ff5895aa57
236 branch: a branch name much longer than the default justification used by branches
236 branch: a branch name much longer than the default justification used by branches
237 user: test
237 user: test
238 date: Thu Jan 01 00:00:06 1970 +0000
238 date: Thu Jan 01 00:00:06 1970 +0000
239 summary: Adding d branch
239 summary: Adding d branch
240
240
241 changeset: 6:589736a22561
241 changeset: 6:589736a22561
242 branch: c
242 branch: c
243 user: test
243 user: test
244 date: Thu Jan 01 00:00:05 1970 +0000
244 date: Thu Jan 01 00:00:05 1970 +0000
245 summary: Adding c branch
245 summary: Adding c branch
246
246
247 changeset: 5:d8cbc61dbaa6
247 changeset: 5:d8cbc61dbaa6
248 branch: a
248 branch: a
249 parent: 2:881fe2b92ad0
249 parent: 2:881fe2b92ad0
250 user: test
250 user: test
251 date: Thu Jan 01 00:00:04 1970 +0000
251 date: Thu Jan 01 00:00:04 1970 +0000
252 summary: Adding b branch head 2
252 summary: Adding b branch head 2
253
253
254 changeset: 0:19709c5a4e75
254 changeset: 0:19709c5a4e75
255 user: test
255 user: test
256 date: Thu Jan 01 00:00:00 1970 +0000
256 date: Thu Jan 01 00:00:00 1970 +0000
257 summary: Adding root node
257 summary: Adding root node
258
258
259 $ hg commit -d '9 0' --close-branch -m 'prune bad branch'
259 $ hg commit -d '9 0' --close-branch -m 'prune bad branch'
260 $ hg branches -a
260 $ hg branches -a
261 b 8:eebb944467c9
261 b 8:eebb944467c9
262 a branch name much longer than the default justification used by branches 7:10ff5895aa57
262 a branch name much longer than the default justification used by branches 7:10ff5895aa57
263 $ hg up -C b
263 $ hg up -C b
264 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
264 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
265 $ hg commit -d '9 0' --close-branch -m 'close this part branch too'
265 $ hg commit -d '9 0' --close-branch -m 'close this part branch too'
266 $ hg commit -d '9 0' --close-branch -m 're-closing this branch'
266 $ hg commit -d '9 0' --close-branch -m 're-closing this branch'
267 abort: can only close branch heads
267 abort: can only close branch heads
268 [255]
268 [255]
269
269
270 $ hg log -r tip --debug
270 $ hg log -r tip --debug
271 changeset: 12:e3d49c0575d8fc2cb1cd6859c747c14f5f6d499f
271 changeset: 12:e3d49c0575d8fc2cb1cd6859c747c14f5f6d499f
272 branch: b
272 branch: b
273 tag: tip
273 tag: tip
274 phase: draft
274 phase: draft
275 parent: 8:eebb944467c9fb9651ed232aeaf31b3c0a7fc6c1
275 parent: 8:eebb944467c9fb9651ed232aeaf31b3c0a7fc6c1
276 parent: -1:0000000000000000000000000000000000000000
276 parent: -1:0000000000000000000000000000000000000000
277 manifest: 8:6f9ed32d2b310e391a4f107d5f0f071df785bfee
277 manifest: 8:6f9ed32d2b310e391a4f107d5f0f071df785bfee
278 user: test
278 user: test
279 date: Thu Jan 01 00:00:09 1970 +0000
279 date: Thu Jan 01 00:00:09 1970 +0000
280 extra: branch=b
280 extra: branch=b
281 extra: close=1
281 extra: close=1
282 description:
282 description:
283 close this part branch too
283 close this part branch too
284
284
285
285
286 --- b branch should be inactive
286 --- b branch should be inactive
287
287
288 $ hg branches
288 $ hg branches
289 a branch name much longer than the default justification used by branches 7:10ff5895aa57
289 a branch name much longer than the default justification used by branches 7:10ff5895aa57
290 c 6:589736a22561 (inactive)
290 c 6:589736a22561 (inactive)
291 a 5:d8cbc61dbaa6 (inactive)
291 a 5:d8cbc61dbaa6 (inactive)
292 default 0:19709c5a4e75 (inactive)
292 default 0:19709c5a4e75 (inactive)
293 $ hg branches -c
293 $ hg branches -c
294 a branch name much longer than the default justification used by branches 7:10ff5895aa57
294 a branch name much longer than the default justification used by branches 7:10ff5895aa57
295 b 12:e3d49c0575d8 (closed)
295 b 12:e3d49c0575d8 (closed)
296 c 6:589736a22561 (inactive)
296 c 6:589736a22561 (inactive)
297 a 5:d8cbc61dbaa6 (inactive)
297 a 5:d8cbc61dbaa6 (inactive)
298 default 0:19709c5a4e75 (inactive)
298 default 0:19709c5a4e75 (inactive)
299 $ hg branches -a
299 $ hg branches -a
300 a branch name much longer than the default justification used by branches 7:10ff5895aa57
300 a branch name much longer than the default justification used by branches 7:10ff5895aa57
301 $ hg branches -q
301 $ hg branches -q
302 a branch name much longer than the default justification used by branches
302 a branch name much longer than the default justification used by branches
303 c
303 c
304 a
304 a
305 default
305 default
306 $ hg heads b
306 $ hg heads b
307 no open branch heads found on branches b
307 no open branch heads found on branches b
308 [1]
308 [1]
309 $ hg heads --closed b
309 $ hg heads --closed b
310 changeset: 12:e3d49c0575d8
310 changeset: 12:e3d49c0575d8
311 branch: b
311 branch: b
312 tag: tip
312 tag: tip
313 parent: 8:eebb944467c9
313 parent: 8:eebb944467c9
314 user: test
314 user: test
315 date: Thu Jan 01 00:00:09 1970 +0000
315 date: Thu Jan 01 00:00:09 1970 +0000
316 summary: close this part branch too
316 summary: close this part branch too
317
317
318 changeset: 11:d3f163457ebf
318 changeset: 11:d3f163457ebf
319 branch: b
319 branch: b
320 user: test
320 user: test
321 date: Thu Jan 01 00:00:09 1970 +0000
321 date: Thu Jan 01 00:00:09 1970 +0000
322 summary: prune bad branch
322 summary: prune bad branch
323
323
324 $ echo 'xxx4' >> b
324 $ echo 'xxx4' >> b
325 $ hg commit -d '9 0' -m 'reopen branch with a change'
325 $ hg commit -d '9 0' -m 'reopen branch with a change'
326 reopening closed branch head 12
326 reopening closed branch head 12
327
327
328 --- branch b is back in action
328 --- branch b is back in action
329
329
330 $ hg branches -a
330 $ hg branches -a
331 b 13:e23b5505d1ad
331 b 13:e23b5505d1ad
332 a branch name much longer than the default justification used by branches 7:10ff5895aa57
332 a branch name much longer than the default justification used by branches 7:10ff5895aa57
333
333
334 ---- test heads listings
334 ---- test heads listings
335
335
336 $ hg heads
336 $ hg heads
337 changeset: 13:e23b5505d1ad
337 changeset: 13:e23b5505d1ad
338 branch: b
338 branch: b
339 tag: tip
339 tag: tip
340 user: test
340 user: test
341 date: Thu Jan 01 00:00:09 1970 +0000
341 date: Thu Jan 01 00:00:09 1970 +0000
342 summary: reopen branch with a change
342 summary: reopen branch with a change
343
343
344 changeset: 7:10ff5895aa57
344 changeset: 7:10ff5895aa57
345 branch: a branch name much longer than the default justification used by branches
345 branch: a branch name much longer than the default justification used by branches
346 user: test
346 user: test
347 date: Thu Jan 01 00:00:06 1970 +0000
347 date: Thu Jan 01 00:00:06 1970 +0000
348 summary: Adding d branch
348 summary: Adding d branch
349
349
350 changeset: 6:589736a22561
350 changeset: 6:589736a22561
351 branch: c
351 branch: c
352 user: test
352 user: test
353 date: Thu Jan 01 00:00:05 1970 +0000
353 date: Thu Jan 01 00:00:05 1970 +0000
354 summary: Adding c branch
354 summary: Adding c branch
355
355
356 changeset: 5:d8cbc61dbaa6
356 changeset: 5:d8cbc61dbaa6
357 branch: a
357 branch: a
358 parent: 2:881fe2b92ad0
358 parent: 2:881fe2b92ad0
359 user: test
359 user: test
360 date: Thu Jan 01 00:00:04 1970 +0000
360 date: Thu Jan 01 00:00:04 1970 +0000
361 summary: Adding b branch head 2
361 summary: Adding b branch head 2
362
362
363 changeset: 0:19709c5a4e75
363 changeset: 0:19709c5a4e75
364 user: test
364 user: test
365 date: Thu Jan 01 00:00:00 1970 +0000
365 date: Thu Jan 01 00:00:00 1970 +0000
366 summary: Adding root node
366 summary: Adding root node
367
367
368
368
369 branch default
369 branch default
370
370
371 $ hg heads default
371 $ hg heads default
372 changeset: 0:19709c5a4e75
372 changeset: 0:19709c5a4e75
373 user: test
373 user: test
374 date: Thu Jan 01 00:00:00 1970 +0000
374 date: Thu Jan 01 00:00:00 1970 +0000
375 summary: Adding root node
375 summary: Adding root node
376
376
377
377
378 branch a
378 branch a
379
379
380 $ hg heads a
380 $ hg heads a
381 changeset: 5:d8cbc61dbaa6
381 changeset: 5:d8cbc61dbaa6
382 branch: a
382 branch: a
383 parent: 2:881fe2b92ad0
383 parent: 2:881fe2b92ad0
384 user: test
384 user: test
385 date: Thu Jan 01 00:00:04 1970 +0000
385 date: Thu Jan 01 00:00:04 1970 +0000
386 summary: Adding b branch head 2
386 summary: Adding b branch head 2
387
387
388 $ hg heads --active a
388 $ hg heads --active a
389 no open branch heads found on branches a
389 no open branch heads found on branches a
390 [1]
390 [1]
391
391
392 branch b
392 branch b
393
393
394 $ hg heads b
394 $ hg heads b
395 changeset: 13:e23b5505d1ad
395 changeset: 13:e23b5505d1ad
396 branch: b
396 branch: b
397 tag: tip
397 tag: tip
398 user: test
398 user: test
399 date: Thu Jan 01 00:00:09 1970 +0000
399 date: Thu Jan 01 00:00:09 1970 +0000
400 summary: reopen branch with a change
400 summary: reopen branch with a change
401
401
402 $ hg heads --closed b
402 $ hg heads --closed b
403 changeset: 13:e23b5505d1ad
403 changeset: 13:e23b5505d1ad
404 branch: b
404 branch: b
405 tag: tip
405 tag: tip
406 user: test
406 user: test
407 date: Thu Jan 01 00:00:09 1970 +0000
407 date: Thu Jan 01 00:00:09 1970 +0000
408 summary: reopen branch with a change
408 summary: reopen branch with a change
409
409
410 changeset: 11:d3f163457ebf
410 changeset: 11:d3f163457ebf
411 branch: b
411 branch: b
412 user: test
412 user: test
413 date: Thu Jan 01 00:00:09 1970 +0000
413 date: Thu Jan 01 00:00:09 1970 +0000
414 summary: prune bad branch
414 summary: prune bad branch
415
415
416 default branch colors:
416 default branch colors:
417
417
418 $ cat <<EOF >> $HGRCPATH
418 $ cat <<EOF >> $HGRCPATH
419 > [extensions]
419 > [extensions]
420 > color =
420 > color =
421 > [color]
421 > [color]
422 > mode = ansi
422 > mode = ansi
423 > EOF
423 > EOF
424
424
425 $ hg up -C c
425 $ hg up -C c
426 3 files updated, 0 files merged, 2 files removed, 0 files unresolved
426 3 files updated, 0 files merged, 2 files removed, 0 files unresolved
427 $ hg commit -d '9 0' --close-branch -m 'reclosing this branch'
427 $ hg commit -d '9 0' --close-branch -m 'reclosing this branch'
428 $ hg up -C b
428 $ hg up -C b
429 2 files updated, 0 files merged, 3 files removed, 0 files unresolved
429 2 files updated, 0 files merged, 3 files removed, 0 files unresolved
430 $ hg branches --color=always
430 $ hg branches --color=always
431 \x1b[0;32mb\x1b[0m\x1b[0;33m 13:e23b5505d1ad\x1b[0m (esc)
431 \x1b[0;32mb\x1b[0m\x1b[0;33m 13:e23b5505d1ad\x1b[0m (esc)
432 \x1b[0;0ma branch name much longer than the default justification used by branches\x1b[0m\x1b[0;33m 7:10ff5895aa57\x1b[0m (esc)
432 \x1b[0;0ma branch name much longer than the default justification used by branches\x1b[0m\x1b[0;33m 7:10ff5895aa57\x1b[0m (esc)
433 \x1b[0;0ma\x1b[0m\x1b[0;33m 5:d8cbc61dbaa6\x1b[0m (inactive) (esc)
433 \x1b[0;0ma\x1b[0m\x1b[0;33m 5:d8cbc61dbaa6\x1b[0m (inactive) (esc)
434 \x1b[0;0mdefault\x1b[0m\x1b[0;33m 0:19709c5a4e75\x1b[0m (inactive) (esc)
434 \x1b[0;0mdefault\x1b[0m\x1b[0;33m 0:19709c5a4e75\x1b[0m (inactive) (esc)
435
435
436 default closed branch color:
436 default closed branch color:
437
437
438 $ hg branches --color=always --closed
438 $ hg branches --color=always --closed
439 \x1b[0;32mb\x1b[0m\x1b[0;33m 13:e23b5505d1ad\x1b[0m (esc)
439 \x1b[0;32mb\x1b[0m\x1b[0;33m 13:e23b5505d1ad\x1b[0m (esc)
440 \x1b[0;0ma branch name much longer than the default justification used by branches\x1b[0m\x1b[0;33m 7:10ff5895aa57\x1b[0m (esc)
440 \x1b[0;0ma branch name much longer than the default justification used by branches\x1b[0m\x1b[0;33m 7:10ff5895aa57\x1b[0m (esc)
441 \x1b[0;30;1mc\x1b[0m\x1b[0;33m 14:f894c25619d3\x1b[0m (closed) (esc)
441 \x1b[0;30;1mc\x1b[0m\x1b[0;33m 14:f894c25619d3\x1b[0m (closed) (esc)
442 \x1b[0;0ma\x1b[0m\x1b[0;33m 5:d8cbc61dbaa6\x1b[0m (inactive) (esc)
442 \x1b[0;0ma\x1b[0m\x1b[0;33m 5:d8cbc61dbaa6\x1b[0m (inactive) (esc)
443 \x1b[0;0mdefault\x1b[0m\x1b[0;33m 0:19709c5a4e75\x1b[0m (inactive) (esc)
443 \x1b[0;0mdefault\x1b[0m\x1b[0;33m 0:19709c5a4e75\x1b[0m (inactive) (esc)
444
444
445 $ cat <<EOF >> $HGRCPATH
445 $ cat <<EOF >> $HGRCPATH
446 > [extensions]
446 > [extensions]
447 > color =
447 > color =
448 > [color]
448 > [color]
449 > branches.active = green
449 > branches.active = green
450 > branches.closed = blue
450 > branches.closed = blue
451 > branches.current = red
451 > branches.current = red
452 > branches.inactive = magenta
452 > branches.inactive = magenta
453 > log.changeset = cyan
453 > log.changeset = cyan
454 > EOF
454 > EOF
455
455
456 custom branch colors:
456 custom branch colors:
457
457
458 $ hg branches --color=always
458 $ hg branches --color=always
459 \x1b[0;31mb\x1b[0m\x1b[0;36m 13:e23b5505d1ad\x1b[0m (esc)
459 \x1b[0;31mb\x1b[0m\x1b[0;36m 13:e23b5505d1ad\x1b[0m (esc)
460 \x1b[0;32ma branch name much longer than the default justification used by branches\x1b[0m\x1b[0;36m 7:10ff5895aa57\x1b[0m (esc)
460 \x1b[0;32ma branch name much longer than the default justification used by branches\x1b[0m\x1b[0;36m 7:10ff5895aa57\x1b[0m (esc)
461 \x1b[0;35ma\x1b[0m\x1b[0;36m 5:d8cbc61dbaa6\x1b[0m (inactive) (esc)
461 \x1b[0;35ma\x1b[0m\x1b[0;36m 5:d8cbc61dbaa6\x1b[0m (inactive) (esc)
462 \x1b[0;35mdefault\x1b[0m\x1b[0;36m 0:19709c5a4e75\x1b[0m (inactive) (esc)
462 \x1b[0;35mdefault\x1b[0m\x1b[0;36m 0:19709c5a4e75\x1b[0m (inactive) (esc)
463
463
464 custom closed branch color:
464 custom closed branch color:
465
465
466 $ hg branches --color=always --closed
466 $ hg branches --color=always --closed
467 \x1b[0;31mb\x1b[0m\x1b[0;36m 13:e23b5505d1ad\x1b[0m (esc)
467 \x1b[0;31mb\x1b[0m\x1b[0;36m 13:e23b5505d1ad\x1b[0m (esc)
468 \x1b[0;32ma branch name much longer than the default justification used by branches\x1b[0m\x1b[0;36m 7:10ff5895aa57\x1b[0m (esc)
468 \x1b[0;32ma branch name much longer than the default justification used by branches\x1b[0m\x1b[0;36m 7:10ff5895aa57\x1b[0m (esc)
469 \x1b[0;34mc\x1b[0m\x1b[0;36m 14:f894c25619d3\x1b[0m (closed) (esc)
469 \x1b[0;34mc\x1b[0m\x1b[0;36m 14:f894c25619d3\x1b[0m (closed) (esc)
470 \x1b[0;35ma\x1b[0m\x1b[0;36m 5:d8cbc61dbaa6\x1b[0m (inactive) (esc)
470 \x1b[0;35ma\x1b[0m\x1b[0;36m 5:d8cbc61dbaa6\x1b[0m (inactive) (esc)
471 \x1b[0;35mdefault\x1b[0m\x1b[0;36m 0:19709c5a4e75\x1b[0m (inactive) (esc)
471 \x1b[0;35mdefault\x1b[0m\x1b[0;36m 0:19709c5a4e75\x1b[0m (inactive) (esc)
472
472
473 template output:
473 template output:
474
474
475 $ hg branches -Tjson --closed
475 $ hg branches -Tjson --closed
476 [
476 [
477 {
477 {
478 "active": true,
478 "active": true,
479 "branch": "b",
479 "branch": "b",
480 "closed": false,
480 "closed": false,
481 "current": true,
481 "current": true,
482 "node": "e23b5505d1ad24aab6f84fd8c7cb8cd8e5e93be0",
482 "node": "e23b5505d1ad24aab6f84fd8c7cb8cd8e5e93be0",
483 "rev": 13
483 "rev": 13
484 },
484 },
485 {
485 {
486 "active": true,
486 "active": true,
487 "branch": "a branch name much longer than the default justification used by branches",
487 "branch": "a branch name much longer than the default justification used by branches",
488 "closed": false,
488 "closed": false,
489 "current": false,
489 "current": false,
490 "node": "10ff5895aa5793bd378da574af8cec8ea408d831",
490 "node": "10ff5895aa5793bd378da574af8cec8ea408d831",
491 "rev": 7
491 "rev": 7
492 },
492 },
493 {
493 {
494 "active": false,
494 "active": false,
495 "branch": "c",
495 "branch": "c",
496 "closed": true,
496 "closed": true,
497 "current": false,
497 "current": false,
498 "node": "f894c25619d3f1484639d81be950e0a07bc6f1f6",
498 "node": "f894c25619d3f1484639d81be950e0a07bc6f1f6",
499 "rev": 14
499 "rev": 14
500 },
500 },
501 {
501 {
502 "active": false,
502 "active": false,
503 "branch": "a",
503 "branch": "a",
504 "closed": false,
504 "closed": false,
505 "current": false,
505 "current": false,
506 "node": "d8cbc61dbaa6dc817175d1e301eecb863f280832",
506 "node": "d8cbc61dbaa6dc817175d1e301eecb863f280832",
507 "rev": 5
507 "rev": 5
508 },
508 },
509 {
509 {
510 "active": false,
510 "active": false,
511 "branch": "default",
511 "branch": "default",
512 "closed": false,
512 "closed": false,
513 "current": false,
513 "current": false,
514 "node": "19709c5a4e75bf938f8e349aff97438539bb729e",
514 "node": "19709c5a4e75bf938f8e349aff97438539bb729e",
515 "rev": 0
515 "rev": 0
516 }
516 }
517 ]
517 ]
518
518
519
519
520 Tests of revision branch name caching
520 Tests of revision branch name caching
521
521
522 We rev branch cache is updated automatically. In these tests we use a trick to
522 We rev branch cache is updated automatically. In these tests we use a trick to
523 trigger rebuilds. We remove the branch head cache and run 'hg head' to cause a
523 trigger rebuilds. We remove the branch head cache and run 'hg head' to cause a
524 rebuild that also will populate the rev branch cache.
524 rebuild that also will populate the rev branch cache.
525
525
526 revision branch cache is created when building the branch head cache
526 revision branch cache is created when building the branch head cache
527 $ rm -rf .hg/cache; hg head a -T '{rev}\n'
527 $ rm -rf .hg/cache; hg head a -T '{rev}\n'
528 5
528 5
529 $ f --hexdump --size .hg/cache/rbc-*
529 $ f --hexdump --size .hg/cache/rbc-*
530 .hg/cache/rbc-names-v1: size=87
530 .hg/cache/rbc-names-v1: size=87
531 0000: 64 65 66 61 75 6c 74 00 61 00 62 00 63 00 61 20 |default.a.b.c.a |
531 0000: 64 65 66 61 75 6c 74 00 61 00 62 00 63 00 61 20 |default.a.b.c.a |
532 0010: 62 72 61 6e 63 68 20 6e 61 6d 65 20 6d 75 63 68 |branch name much|
532 0010: 62 72 61 6e 63 68 20 6e 61 6d 65 20 6d 75 63 68 |branch name much|
533 0020: 20 6c 6f 6e 67 65 72 20 74 68 61 6e 20 74 68 65 | longer than the|
533 0020: 20 6c 6f 6e 67 65 72 20 74 68 61 6e 20 74 68 65 | longer than the|
534 0030: 20 64 65 66 61 75 6c 74 20 6a 75 73 74 69 66 69 | default justifi|
534 0030: 20 64 65 66 61 75 6c 74 20 6a 75 73 74 69 66 69 | default justifi|
535 0040: 63 61 74 69 6f 6e 20 75 73 65 64 20 62 79 20 62 |cation used by b|
535 0040: 63 61 74 69 6f 6e 20 75 73 65 64 20 62 79 20 62 |cation used by b|
536 0050: 72 61 6e 63 68 65 73 |ranches|
536 0050: 72 61 6e 63 68 65 73 |ranches|
537 .hg/cache/rbc-revs-v1: size=120
537 .hg/cache/rbc-revs-v1: size=120
538 0000: 19 70 9c 5a 00 00 00 00 dd 6b 44 0d 00 00 00 01 |.p.Z.....kD.....|
538 0000: 19 70 9c 5a 00 00 00 00 dd 6b 44 0d 00 00 00 01 |.p.Z.....kD.....|
539 0010: 88 1f e2 b9 00 00 00 01 ac 22 03 33 00 00 00 02 |.........".3....|
539 0010: 88 1f e2 b9 00 00 00 01 ac 22 03 33 00 00 00 02 |.........".3....|
540 0020: ae e3 9c d1 00 00 00 02 d8 cb c6 1d 00 00 00 01 |................|
540 0020: ae e3 9c d1 00 00 00 02 d8 cb c6 1d 00 00 00 01 |................|
541 0030: 58 97 36 a2 00 00 00 03 10 ff 58 95 00 00 00 04 |X.6.......X.....|
541 0030: 58 97 36 a2 00 00 00 03 10 ff 58 95 00 00 00 04 |X.6.......X.....|
542 0040: ee bb 94 44 00 00 00 02 5f 40 61 bb 00 00 00 02 |...D...._@a.....|
542 0040: ee bb 94 44 00 00 00 02 5f 40 61 bb 00 00 00 02 |...D...._@a.....|
543 0050: bf be 84 1b 00 00 00 02 d3 f1 63 45 80 00 00 02 |..........cE....|
543 0050: bf be 84 1b 00 00 00 02 d3 f1 63 45 80 00 00 02 |..........cE....|
544 0060: e3 d4 9c 05 80 00 00 02 e2 3b 55 05 00 00 00 02 |.........;U.....|
544 0060: e3 d4 9c 05 80 00 00 02 e2 3b 55 05 00 00 00 02 |.........;U.....|
545 0070: f8 94 c2 56 80 00 00 03 |...V....|
545 0070: f8 94 c2 56 80 00 00 03 |...V....|
546
546
547 no errors when revbranchcache is not writable
547 no errors when revbranchcache is not writable
548
548
549 $ echo >> .hg/cache/rbc-revs-v1
549 $ echo >> .hg/cache/rbc-revs-v1
550 $ mv .hg/cache/rbc-revs-v1 .hg/cache/rbc-revs-v1_
550 $ mv .hg/cache/rbc-revs-v1 .hg/cache/rbc-revs-v1_
551 $ mkdir .hg/cache/rbc-revs-v1
551 $ mkdir .hg/cache/rbc-revs-v1
552 $ rm -f .hg/cache/branch* && hg head a -T '{rev}\n'
552 $ rm -f .hg/cache/branch* && hg head a -T '{rev}\n'
553 5
553 5
554 $ rmdir .hg/cache/rbc-revs-v1
554 $ rmdir .hg/cache/rbc-revs-v1
555 $ mv .hg/cache/rbc-revs-v1_ .hg/cache/rbc-revs-v1
555 $ mv .hg/cache/rbc-revs-v1_ .hg/cache/rbc-revs-v1
556
556
557 recovery from invalid cache revs file with trailing data
557 recovery from invalid cache revs file with trailing data
558 $ echo >> .hg/cache/rbc-revs-v1
558 $ echo >> .hg/cache/rbc-revs-v1
559 $ rm -f .hg/cache/branch* && hg head a -T '{rev}\n' --debug
559 $ rm -f .hg/cache/branch* && hg head a -T '{rev}\n' --debug
560 5
560 5
561 truncating cache/rbc-revs-v1 to 120
561 truncating cache/rbc-revs-v1 to 120
562 $ f --size .hg/cache/rbc-revs*
562 $ f --size .hg/cache/rbc-revs*
563 .hg/cache/rbc-revs-v1: size=120
563 .hg/cache/rbc-revs-v1: size=120
564 recovery from invalid cache file with partial last record
564 recovery from invalid cache file with partial last record
565 $ mv .hg/cache/rbc-revs-v1 .
565 $ mv .hg/cache/rbc-revs-v1 .
566 $ f -qDB 119 rbc-revs-v1 > .hg/cache/rbc-revs-v1
566 $ f -qDB 119 rbc-revs-v1 > .hg/cache/rbc-revs-v1
567 $ f --size .hg/cache/rbc-revs*
567 $ f --size .hg/cache/rbc-revs*
568 .hg/cache/rbc-revs-v1: size=119
568 .hg/cache/rbc-revs-v1: size=119
569 $ rm -f .hg/cache/branch* && hg head a -T '{rev}\n' --debug
569 $ rm -f .hg/cache/branch* && hg head a -T '{rev}\n' --debug
570 5
570 5
571 truncating cache/rbc-revs-v1 to 112
571 truncating cache/rbc-revs-v1 to 112
572 $ f --size .hg/cache/rbc-revs*
572 $ f --size .hg/cache/rbc-revs*
573 .hg/cache/rbc-revs-v1: size=120
573 .hg/cache/rbc-revs-v1: size=120
574 recovery from invalid cache file with missing record - no truncation
574 recovery from invalid cache file with missing record - no truncation
575 $ mv .hg/cache/rbc-revs-v1 .
575 $ mv .hg/cache/rbc-revs-v1 .
576 $ f -qDB 112 rbc-revs-v1 > .hg/cache/rbc-revs-v1
576 $ f -qDB 112 rbc-revs-v1 > .hg/cache/rbc-revs-v1
577 $ rm -f .hg/cache/branch* && hg head a -T '{rev}\n' --debug
577 $ rm -f .hg/cache/branch* && hg head a -T '{rev}\n' --debug
578 5
578 5
579 $ f --size .hg/cache/rbc-revs*
579 $ f --size .hg/cache/rbc-revs*
580 .hg/cache/rbc-revs-v1: size=120
580 .hg/cache/rbc-revs-v1: size=120
581 recovery from invalid cache file with some bad records
581 recovery from invalid cache file with some bad records
582 $ mv .hg/cache/rbc-revs-v1 .
582 $ mv .hg/cache/rbc-revs-v1 .
583 $ f -qDB 8 rbc-revs-v1 > .hg/cache/rbc-revs-v1
583 $ f -qDB 8 rbc-revs-v1 > .hg/cache/rbc-revs-v1
584 $ f --size .hg/cache/rbc-revs*
584 $ f --size .hg/cache/rbc-revs*
585 .hg/cache/rbc-revs-v1: size=8
585 .hg/cache/rbc-revs-v1: size=8
586 $ f -qDB 112 rbc-revs-v1 >> .hg/cache/rbc-revs-v1
586 $ f -qDB 112 rbc-revs-v1 >> .hg/cache/rbc-revs-v1
587 $ f --size .hg/cache/rbc-revs*
587 $ f --size .hg/cache/rbc-revs*
588 .hg/cache/rbc-revs-v1: size=120
588 .hg/cache/rbc-revs-v1: size=120
589 $ hg log -r 'branch(.)' -T '{rev} ' --debug
589 $ hg log -r 'branch(.)' -T '{rev} ' --debug
590 3 4 8 9 10 11 12 13 truncating cache/rbc-revs-v1 to 8
590 3 4 8 9 10 11 12 13 truncating cache/rbc-revs-v1 to 8
591 $ rm -f .hg/cache/branch* && hg head a -T '{rev}\n' --debug
591 $ rm -f .hg/cache/branch* && hg head a -T '{rev}\n' --debug
592 5
592 5
593 truncating cache/rbc-revs-v1 to 104
593 truncating cache/rbc-revs-v1 to 104
594 $ f --size --hexdump --bytes=16 .hg/cache/rbc-revs*
594 $ f --size --hexdump --bytes=16 .hg/cache/rbc-revs*
595 .hg/cache/rbc-revs-v1: size=120
595 .hg/cache/rbc-revs-v1: size=120
596 0000: 19 70 9c 5a 00 00 00 00 dd 6b 44 0d 00 00 00 01 |.p.Z.....kD.....|
596 0000: 19 70 9c 5a 00 00 00 00 dd 6b 44 0d 00 00 00 01 |.p.Z.....kD.....|
597 cache is updated when committing
597 cache is updated when committing
598 $ hg branch i-will-regret-this
598 $ hg branch i-will-regret-this
599 marked working directory as branch i-will-regret-this
599 marked working directory as branch i-will-regret-this
600 $ hg ci -m regrets
600 $ hg ci -m regrets
601 $ f --size .hg/cache/rbc-*
601 $ f --size .hg/cache/rbc-*
602 .hg/cache/rbc-names-v1: size=106
602 .hg/cache/rbc-names-v1: size=106
603 .hg/cache/rbc-revs-v1: size=128
603 .hg/cache/rbc-revs-v1: size=128
604 update after rollback - the cache will be correct but rbc-names will will still
604 update after rollback - the cache will be correct but rbc-names will will still
605 contain the branch name even though it no longer is used
605 contain the branch name even though it no longer is used
606 $ hg up -qr '.^'
606 $ hg up -qr '.^'
607 $ hg rollback -qf
607 $ hg rollback -qf
608 $ f --size --hexdump .hg/cache/rbc-*
608 $ f --size --hexdump .hg/cache/rbc-*
609 .hg/cache/rbc-names-v1: size=106
609 .hg/cache/rbc-names-v1: size=106
610 0000: 64 65 66 61 75 6c 74 00 61 00 62 00 63 00 61 20 |default.a.b.c.a |
610 0000: 64 65 66 61 75 6c 74 00 61 00 62 00 63 00 61 20 |default.a.b.c.a |
611 0010: 62 72 61 6e 63 68 20 6e 61 6d 65 20 6d 75 63 68 |branch name much|
611 0010: 62 72 61 6e 63 68 20 6e 61 6d 65 20 6d 75 63 68 |branch name much|
612 0020: 20 6c 6f 6e 67 65 72 20 74 68 61 6e 20 74 68 65 | longer than the|
612 0020: 20 6c 6f 6e 67 65 72 20 74 68 61 6e 20 74 68 65 | longer than the|
613 0030: 20 64 65 66 61 75 6c 74 20 6a 75 73 74 69 66 69 | default justifi|
613 0030: 20 64 65 66 61 75 6c 74 20 6a 75 73 74 69 66 69 | default justifi|
614 0040: 63 61 74 69 6f 6e 20 75 73 65 64 20 62 79 20 62 |cation used by b|
614 0040: 63 61 74 69 6f 6e 20 75 73 65 64 20 62 79 20 62 |cation used by b|
615 0050: 72 61 6e 63 68 65 73 00 69 2d 77 69 6c 6c 2d 72 |ranches.i-will-r|
615 0050: 72 61 6e 63 68 65 73 00 69 2d 77 69 6c 6c 2d 72 |ranches.i-will-r|
616 0060: 65 67 72 65 74 2d 74 68 69 73 |egret-this|
616 0060: 65 67 72 65 74 2d 74 68 69 73 |egret-this|
617 .hg/cache/rbc-revs-v1: size=120
617 .hg/cache/rbc-revs-v1: size=120
618 0000: 19 70 9c 5a 00 00 00 00 dd 6b 44 0d 00 00 00 01 |.p.Z.....kD.....|
618 0000: 19 70 9c 5a 00 00 00 00 dd 6b 44 0d 00 00 00 01 |.p.Z.....kD.....|
619 0010: 88 1f e2 b9 00 00 00 01 ac 22 03 33 00 00 00 02 |.........".3....|
619 0010: 88 1f e2 b9 00 00 00 01 ac 22 03 33 00 00 00 02 |.........".3....|
620 0020: ae e3 9c d1 00 00 00 02 d8 cb c6 1d 00 00 00 01 |................|
620 0020: ae e3 9c d1 00 00 00 02 d8 cb c6 1d 00 00 00 01 |................|
621 0030: 58 97 36 a2 00 00 00 03 10 ff 58 95 00 00 00 04 |X.6.......X.....|
621 0030: 58 97 36 a2 00 00 00 03 10 ff 58 95 00 00 00 04 |X.6.......X.....|
622 0040: ee bb 94 44 00 00 00 02 5f 40 61 bb 00 00 00 02 |...D...._@a.....|
622 0040: ee bb 94 44 00 00 00 02 5f 40 61 bb 00 00 00 02 |...D...._@a.....|
623 0050: bf be 84 1b 00 00 00 02 d3 f1 63 45 80 00 00 02 |..........cE....|
623 0050: bf be 84 1b 00 00 00 02 d3 f1 63 45 80 00 00 02 |..........cE....|
624 0060: e3 d4 9c 05 80 00 00 02 e2 3b 55 05 00 00 00 02 |.........;U.....|
624 0060: e3 d4 9c 05 80 00 00 02 e2 3b 55 05 00 00 00 02 |.........;U.....|
625 0070: f8 94 c2 56 80 00 00 03 |...V....|
625 0070: f8 94 c2 56 80 00 00 03 |...V....|
626 cache is updated/truncated when stripping - it is thus very hard to get in a
626 cache is updated/truncated when stripping - it is thus very hard to get in a
627 situation where the cache is out of sync and the hash check detects it
627 situation where the cache is out of sync and the hash check detects it
628 $ hg --config extensions.strip= strip -r tip --nob
628 $ hg --config extensions.strip= strip -r tip --nob
629 $ f --size .hg/cache/rbc-revs*
629 $ f --size .hg/cache/rbc-revs*
630 .hg/cache/rbc-revs-v1: size=112
630 .hg/cache/rbc-revs-v1: size=112
631
631
632 cache is rebuilt when corruption is detected
632 cache is rebuilt when corruption is detected
633 $ echo > .hg/cache/rbc-names-v1
633 $ echo > .hg/cache/rbc-names-v1
634 $ hg log -r '5:&branch(.)' -T '{rev} ' --debug
634 $ hg log -r '5:&branch(.)' -T '{rev} ' --debug
635 rebuilding corrupted revision branch cache
635 rebuilding corrupted revision branch cache
636 8 9 10 11 12 13 truncating cache/rbc-revs-v1 to 40
636 8 9 10 11 12 13 truncating cache/rbc-revs-v1 to 40
637 $ f --size --hexdump .hg/cache/rbc-*
637 $ f --size --hexdump .hg/cache/rbc-*
638 .hg/cache/rbc-names-v1: size=79
638 .hg/cache/rbc-names-v1: size=79
639 0000: 62 00 61 00 63 00 61 20 62 72 61 6e 63 68 20 6e |b.a.c.a branch n|
639 0000: 62 00 61 00 63 00 61 20 62 72 61 6e 63 68 20 6e |b.a.c.a branch n|
640 0010: 61 6d 65 20 6d 75 63 68 20 6c 6f 6e 67 65 72 20 |ame much longer |
640 0010: 61 6d 65 20 6d 75 63 68 20 6c 6f 6e 67 65 72 20 |ame much longer |
641 0020: 74 68 61 6e 20 74 68 65 20 64 65 66 61 75 6c 74 |than the default|
641 0020: 74 68 61 6e 20 74 68 65 20 64 65 66 61 75 6c 74 |than the default|
642 0030: 20 6a 75 73 74 69 66 69 63 61 74 69 6f 6e 20 75 | justification u|
642 0030: 20 6a 75 73 74 69 66 69 63 61 74 69 6f 6e 20 75 | justification u|
643 0040: 73 65 64 20 62 79 20 62 72 61 6e 63 68 65 73 |sed by branches|
643 0040: 73 65 64 20 62 79 20 62 72 61 6e 63 68 65 73 |sed by branches|
644 .hg/cache/rbc-revs-v1: size=112
644 .hg/cache/rbc-revs-v1: size=112
645 0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
645 0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
646 0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
646 0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
647 0020: 00 00 00 00 00 00 00 00 d8 cb c6 1d 00 00 00 01 |................|
647 0020: 00 00 00 00 00 00 00 00 d8 cb c6 1d 00 00 00 01 |................|
648 0030: 58 97 36 a2 00 00 00 02 10 ff 58 95 00 00 00 03 |X.6.......X.....|
648 0030: 58 97 36 a2 00 00 00 02 10 ff 58 95 00 00 00 03 |X.6.......X.....|
649 0040: ee bb 94 44 00 00 00 00 5f 40 61 bb 00 00 00 00 |...D...._@a.....|
649 0040: ee bb 94 44 00 00 00 00 5f 40 61 bb 00 00 00 00 |...D...._@a.....|
650 0050: bf be 84 1b 00 00 00 00 d3 f1 63 45 80 00 00 00 |..........cE....|
650 0050: bf be 84 1b 00 00 00 00 d3 f1 63 45 80 00 00 00 |..........cE....|
651 0060: e3 d4 9c 05 80 00 00 00 e2 3b 55 05 00 00 00 00 |.........;U.....|
651 0060: e3 d4 9c 05 80 00 00 00 e2 3b 55 05 00 00 00 00 |.........;U.....|
652
652
653 Test that cache files are created and grows correctly:
653 Test that cache files are created and grows correctly:
654
654
655 $ rm .hg/cache/rbc*
655 $ rm .hg/cache/rbc*
656 $ hg log -r "5 & branch(5)" -T "{rev}\n"
656 $ hg log -r "5 & branch(5)" -T "{rev}\n"
657 5
657 5
658 $ f --size --hexdump .hg/cache/rbc-*
658 $ f --size --hexdump .hg/cache/rbc-*
659 .hg/cache/rbc-names-v1: size=1
659 .hg/cache/rbc-names-v1: size=1
660 0000: 61 |a|
660 0000: 61 |a|
661 .hg/cache/rbc-revs-v1: size=112
661 .hg/cache/rbc-revs-v1: size=112
662 0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
662 0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
663 0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
663 0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
664 0020: 00 00 00 00 00 00 00 00 d8 cb c6 1d 00 00 00 00 |................|
664 0020: 00 00 00 00 00 00 00 00 d8 cb c6 1d 00 00 00 00 |................|
665 0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
665 0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
666 0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
666 0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
667 0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
667 0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
668 0060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
668 0060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
669
669
670 $ cd ..
670 $ cd ..
671
672 Test for multiple incorrect branch cache entries:
673
674 $ hg init b
675 $ cd b
676 $ touch f
677 $ hg ci -Aqmf
678 $ echo >> f
679 $ hg ci -Amf
680 $ hg branch -q branch
681 $ hg ci -Amf
682
683 $ f --size --hexdump .hg/cache/rbc-*
684 .hg/cache/rbc-names-v1: size=14
685 0000: 64 65 66 61 75 6c 74 00 62 72 61 6e 63 68 |default.branch|
686 .hg/cache/rbc-revs-v1: size=24
687 0000: 66 e5 f5 aa 00 00 00 00 fa 4c 04 e5 00 00 00 00 |f........L......|
688 0010: 56 46 78 69 00 00 00 01 |VFxi....|
689 $ : > .hg/cache/rbc-revs-v1
690
691 $ hg log -r "branch(null)&branch(branch)" --debug
692 rebuilding corrupted revision branch cache
693 rebuilding corrupted revision branch cache
694 truncating cache/rbc-revs-v1 to 8
695 BUG: the cache was declared corrupt multiple times and not fully rebuilt:
696 $ f --size --hexdump .hg/cache/rbc-*
697 .hg/cache/rbc-names-v1: size=14
698 0000: 64 65 66 61 75 6c 74 00 62 72 61 6e 63 68 |default.branch|
699 .hg/cache/rbc-revs-v1: size=24
700 0000: 00 00 00 00 00 00 00 00 fa 4c 04 e5 00 00 00 00 |.........L......|
701 0010: 56 46 78 69 00 00 00 01 |VFxi....|
702
703 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now