##// END OF EJS Templates
test-treemanifest: ensure manifest command isn't broken...
Augie Fackler -
r29699:6943dacc default
parent child Browse files
Show More
@@ -1,795 +1,808 b''
1 #require killdaemons
1 #require killdaemons
2
2
3 $ cat << EOF >> $HGRCPATH
3 $ cat << EOF >> $HGRCPATH
4 > [format]
4 > [format]
5 > usegeneraldelta=yes
5 > usegeneraldelta=yes
6 > [ui]
6 > [ui]
7 > ssh=python "$TESTDIR/dummyssh"
7 > ssh=python "$TESTDIR/dummyssh"
8 > EOF
8 > EOF
9
9
10 Set up repo
10 Set up repo
11
11
12 $ hg --config experimental.treemanifest=True init repo
12 $ hg --config experimental.treemanifest=True init repo
13 $ cd repo
13 $ cd repo
14
14
15 Requirements get set on init
15 Requirements get set on init
16
16
17 $ grep treemanifest .hg/requires
17 $ grep treemanifest .hg/requires
18 treemanifest
18 treemanifest
19
19
20 Without directories, looks like any other repo
20 Without directories, looks like any other repo
21
21
22 $ echo 0 > a
22 $ echo 0 > a
23 $ echo 0 > b
23 $ echo 0 > b
24 $ hg ci -Aqm initial
24 $ hg ci -Aqm initial
25 $ hg debugdata -m 0
25 $ hg debugdata -m 0
26 a\x00362fef284ce2ca02aecc8de6d5e8a1c3af0556fe (esc)
26 a\x00362fef284ce2ca02aecc8de6d5e8a1c3af0556fe (esc)
27 b\x00362fef284ce2ca02aecc8de6d5e8a1c3af0556fe (esc)
27 b\x00362fef284ce2ca02aecc8de6d5e8a1c3af0556fe (esc)
28
28
29 Submanifest is stored in separate revlog
29 Submanifest is stored in separate revlog
30
30
31 $ mkdir dir1
31 $ mkdir dir1
32 $ echo 1 > dir1/a
32 $ echo 1 > dir1/a
33 $ echo 1 > dir1/b
33 $ echo 1 > dir1/b
34 $ echo 1 > e
34 $ echo 1 > e
35 $ hg ci -Aqm 'add dir1'
35 $ hg ci -Aqm 'add dir1'
36 $ hg debugdata -m 1
36 $ hg debugdata -m 1
37 a\x00362fef284ce2ca02aecc8de6d5e8a1c3af0556fe (esc)
37 a\x00362fef284ce2ca02aecc8de6d5e8a1c3af0556fe (esc)
38 b\x00362fef284ce2ca02aecc8de6d5e8a1c3af0556fe (esc)
38 b\x00362fef284ce2ca02aecc8de6d5e8a1c3af0556fe (esc)
39 dir1\x008b3ffd73f901e83304c83d33132c8e774ceac44et (esc)
39 dir1\x008b3ffd73f901e83304c83d33132c8e774ceac44et (esc)
40 e\x00b8e02f6433738021a065f94175c7cd23db5f05be (esc)
40 e\x00b8e02f6433738021a065f94175c7cd23db5f05be (esc)
41 $ hg debugdata --dir dir1 0
41 $ hg debugdata --dir dir1 0
42 a\x00b8e02f6433738021a065f94175c7cd23db5f05be (esc)
42 a\x00b8e02f6433738021a065f94175c7cd23db5f05be (esc)
43 b\x00b8e02f6433738021a065f94175c7cd23db5f05be (esc)
43 b\x00b8e02f6433738021a065f94175c7cd23db5f05be (esc)
44
44
45 Can add nested directories
45 Can add nested directories
46
46
47 $ mkdir dir1/dir1
47 $ mkdir dir1/dir1
48 $ echo 2 > dir1/dir1/a
48 $ echo 2 > dir1/dir1/a
49 $ echo 2 > dir1/dir1/b
49 $ echo 2 > dir1/dir1/b
50 $ mkdir dir1/dir2
50 $ mkdir dir1/dir2
51 $ echo 2 > dir1/dir2/a
51 $ echo 2 > dir1/dir2/a
52 $ echo 2 > dir1/dir2/b
52 $ echo 2 > dir1/dir2/b
53 $ hg ci -Aqm 'add dir1/dir1'
53 $ hg ci -Aqm 'add dir1/dir1'
54 $ hg files -r .
54 $ hg files -r .
55 a
55 a
56 b
56 b
57 dir1/a (glob)
57 dir1/a (glob)
58 dir1/b (glob)
58 dir1/b (glob)
59 dir1/dir1/a (glob)
59 dir1/dir1/a (glob)
60 dir1/dir1/b (glob)
60 dir1/dir1/b (glob)
61 dir1/dir2/a (glob)
61 dir1/dir2/a (glob)
62 dir1/dir2/b (glob)
62 dir1/dir2/b (glob)
63 e
63 e
64
64
65 The manifest command works
66
67 $ hg manifest
68 a
69 b
70 dir1/a
71 dir1/b
72 dir1/dir1/a
73 dir1/dir1/b
74 dir1/dir2/a
75 dir1/dir2/b
76 e
77
65 Revision is not created for unchanged directory
78 Revision is not created for unchanged directory
66
79
67 $ mkdir dir2
80 $ mkdir dir2
68 $ echo 3 > dir2/a
81 $ echo 3 > dir2/a
69 $ hg add dir2
82 $ hg add dir2
70 adding dir2/a (glob)
83 adding dir2/a (glob)
71 $ hg debugindex --dir dir1 > before
84 $ hg debugindex --dir dir1 > before
72 $ hg ci -qm 'add dir2'
85 $ hg ci -qm 'add dir2'
73 $ hg debugindex --dir dir1 > after
86 $ hg debugindex --dir dir1 > after
74 $ diff before after
87 $ diff before after
75 $ rm before after
88 $ rm before after
76
89
77 Removing directory does not create an revlog entry
90 Removing directory does not create an revlog entry
78
91
79 $ hg rm dir1/dir1
92 $ hg rm dir1/dir1
80 removing dir1/dir1/a (glob)
93 removing dir1/dir1/a (glob)
81 removing dir1/dir1/b (glob)
94 removing dir1/dir1/b (glob)
82 $ hg debugindex --dir dir1/dir1 > before
95 $ hg debugindex --dir dir1/dir1 > before
83 $ hg ci -qm 'remove dir1/dir1'
96 $ hg ci -qm 'remove dir1/dir1'
84 $ hg debugindex --dir dir1/dir1 > after
97 $ hg debugindex --dir dir1/dir1 > after
85 $ diff before after
98 $ diff before after
86 $ rm before after
99 $ rm before after
87
100
88 Check that hg files (calls treemanifest.walk()) works
101 Check that hg files (calls treemanifest.walk()) works
89 without loading all directory revlogs
102 without loading all directory revlogs
90
103
91 $ hg co 'desc("add dir2")'
104 $ hg co 'desc("add dir2")'
92 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
105 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
93 $ mv .hg/store/meta/dir2 .hg/store/meta/dir2-backup
106 $ mv .hg/store/meta/dir2 .hg/store/meta/dir2-backup
94 $ hg files -r . dir1
107 $ hg files -r . dir1
95 dir1/a (glob)
108 dir1/a (glob)
96 dir1/b (glob)
109 dir1/b (glob)
97 dir1/dir1/a (glob)
110 dir1/dir1/a (glob)
98 dir1/dir1/b (glob)
111 dir1/dir1/b (glob)
99 dir1/dir2/a (glob)
112 dir1/dir2/a (glob)
100 dir1/dir2/b (glob)
113 dir1/dir2/b (glob)
101
114
102 Check that status between revisions works (calls treemanifest.matches())
115 Check that status between revisions works (calls treemanifest.matches())
103 without loading all directory revlogs
116 without loading all directory revlogs
104
117
105 $ hg status --rev 'desc("add dir1")' --rev . dir1
118 $ hg status --rev 'desc("add dir1")' --rev . dir1
106 A dir1/dir1/a
119 A dir1/dir1/a
107 A dir1/dir1/b
120 A dir1/dir1/b
108 A dir1/dir2/a
121 A dir1/dir2/a
109 A dir1/dir2/b
122 A dir1/dir2/b
110 $ mv .hg/store/meta/dir2-backup .hg/store/meta/dir2
123 $ mv .hg/store/meta/dir2-backup .hg/store/meta/dir2
111
124
112 Merge creates 2-parent revision of directory revlog
125 Merge creates 2-parent revision of directory revlog
113
126
114 $ echo 5 > dir1/a
127 $ echo 5 > dir1/a
115 $ hg ci -Aqm 'modify dir1/a'
128 $ hg ci -Aqm 'modify dir1/a'
116 $ hg co '.^'
129 $ hg co '.^'
117 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
130 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
118 $ echo 6 > dir1/b
131 $ echo 6 > dir1/b
119 $ hg ci -Aqm 'modify dir1/b'
132 $ hg ci -Aqm 'modify dir1/b'
120 $ hg merge 'desc("modify dir1/a")'
133 $ hg merge 'desc("modify dir1/a")'
121 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
134 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
122 (branch merge, don't forget to commit)
135 (branch merge, don't forget to commit)
123 $ hg ci -m 'conflict-free merge involving dir1/'
136 $ hg ci -m 'conflict-free merge involving dir1/'
124 $ cat dir1/a
137 $ cat dir1/a
125 5
138 5
126 $ cat dir1/b
139 $ cat dir1/b
127 6
140 6
128 $ hg debugindex --dir dir1
141 $ hg debugindex --dir dir1
129 rev offset length delta linkrev nodeid p1 p2
142 rev offset length delta linkrev nodeid p1 p2
130 0 0 54 -1 1 8b3ffd73f901 000000000000 000000000000
143 0 0 54 -1 1 8b3ffd73f901 000000000000 000000000000
131 1 54 68 0 2 68e9d057c5a8 8b3ffd73f901 000000000000
144 1 54 68 0 2 68e9d057c5a8 8b3ffd73f901 000000000000
132 2 122 12 1 4 4698198d2624 68e9d057c5a8 000000000000
145 2 122 12 1 4 4698198d2624 68e9d057c5a8 000000000000
133 3 134 55 1 5 44844058ccce 68e9d057c5a8 000000000000
146 3 134 55 1 5 44844058ccce 68e9d057c5a8 000000000000
134 4 189 55 1 6 bf3d9b744927 68e9d057c5a8 000000000000
147 4 189 55 1 6 bf3d9b744927 68e9d057c5a8 000000000000
135 5 244 55 4 7 dde7c0af2a03 bf3d9b744927 44844058ccce
148 5 244 55 4 7 dde7c0af2a03 bf3d9b744927 44844058ccce
136
149
137 Merge keeping directory from parent 1 does not create revlog entry. (Note that
150 Merge keeping directory from parent 1 does not create revlog entry. (Note that
138 dir1's manifest does change, but only because dir1/a's filelog changes.)
151 dir1's manifest does change, but only because dir1/a's filelog changes.)
139
152
140 $ hg co 'desc("add dir2")'
153 $ hg co 'desc("add dir2")'
141 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
154 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
142 $ echo 8 > dir2/a
155 $ echo 8 > dir2/a
143 $ hg ci -m 'modify dir2/a'
156 $ hg ci -m 'modify dir2/a'
144 created new head
157 created new head
145
158
146 $ hg debugindex --dir dir2 > before
159 $ hg debugindex --dir dir2 > before
147 $ hg merge 'desc("modify dir1/a")'
160 $ hg merge 'desc("modify dir1/a")'
148 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
161 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
149 (branch merge, don't forget to commit)
162 (branch merge, don't forget to commit)
150 $ hg revert -r 'desc("modify dir2/a")' .
163 $ hg revert -r 'desc("modify dir2/a")' .
151 reverting dir1/a (glob)
164 reverting dir1/a (glob)
152 $ hg ci -m 'merge, keeping parent 1'
165 $ hg ci -m 'merge, keeping parent 1'
153 $ hg debugindex --dir dir2 > after
166 $ hg debugindex --dir dir2 > after
154 $ diff before after
167 $ diff before after
155 $ rm before after
168 $ rm before after
156
169
157 Merge keeping directory from parent 2 does not create revlog entry. (Note that
170 Merge keeping directory from parent 2 does not create revlog entry. (Note that
158 dir2's manifest does change, but only because dir2/a's filelog changes.)
171 dir2's manifest does change, but only because dir2/a's filelog changes.)
159
172
160 $ hg co 'desc("modify dir2/a")'
173 $ hg co 'desc("modify dir2/a")'
161 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
174 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
162 $ hg debugindex --dir dir1 > before
175 $ hg debugindex --dir dir1 > before
163 $ hg merge 'desc("modify dir1/a")'
176 $ hg merge 'desc("modify dir1/a")'
164 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
177 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
165 (branch merge, don't forget to commit)
178 (branch merge, don't forget to commit)
166 $ hg revert -r 'desc("modify dir1/a")' .
179 $ hg revert -r 'desc("modify dir1/a")' .
167 reverting dir2/a (glob)
180 reverting dir2/a (glob)
168 $ hg ci -m 'merge, keeping parent 2'
181 $ hg ci -m 'merge, keeping parent 2'
169 created new head
182 created new head
170 $ hg debugindex --dir dir1 > after
183 $ hg debugindex --dir dir1 > after
171 $ diff before after
184 $ diff before after
172 $ rm before after
185 $ rm before after
173
186
174 Create flat source repo for tests with mixed flat/tree manifests
187 Create flat source repo for tests with mixed flat/tree manifests
175
188
176 $ cd ..
189 $ cd ..
177 $ hg init repo-flat
190 $ hg init repo-flat
178 $ cd repo-flat
191 $ cd repo-flat
179
192
180 Create a few commits with flat manifest
193 Create a few commits with flat manifest
181
194
182 $ echo 0 > a
195 $ echo 0 > a
183 $ echo 0 > b
196 $ echo 0 > b
184 $ echo 0 > e
197 $ echo 0 > e
185 $ for d in dir1 dir1/dir1 dir1/dir2 dir2
198 $ for d in dir1 dir1/dir1 dir1/dir2 dir2
186 > do
199 > do
187 > mkdir $d
200 > mkdir $d
188 > echo 0 > $d/a
201 > echo 0 > $d/a
189 > echo 0 > $d/b
202 > echo 0 > $d/b
190 > done
203 > done
191 $ hg ci -Aqm initial
204 $ hg ci -Aqm initial
192
205
193 $ echo 1 > a
206 $ echo 1 > a
194 $ echo 1 > dir1/a
207 $ echo 1 > dir1/a
195 $ echo 1 > dir1/dir1/a
208 $ echo 1 > dir1/dir1/a
196 $ hg ci -Aqm 'modify on branch 1'
209 $ hg ci -Aqm 'modify on branch 1'
197
210
198 $ hg co 0
211 $ hg co 0
199 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
212 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
200 $ echo 2 > b
213 $ echo 2 > b
201 $ echo 2 > dir1/b
214 $ echo 2 > dir1/b
202 $ echo 2 > dir1/dir1/b
215 $ echo 2 > dir1/dir1/b
203 $ hg ci -Aqm 'modify on branch 2'
216 $ hg ci -Aqm 'modify on branch 2'
204
217
205 $ hg merge 1
218 $ hg merge 1
206 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
219 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
207 (branch merge, don't forget to commit)
220 (branch merge, don't forget to commit)
208 $ hg ci -m 'merge of flat manifests to new flat manifest'
221 $ hg ci -m 'merge of flat manifests to new flat manifest'
209
222
210 $ hg serve -p $HGPORT -d --pid-file=hg.pid --errorlog=errors.log
223 $ hg serve -p $HGPORT -d --pid-file=hg.pid --errorlog=errors.log
211 $ cat hg.pid >> $DAEMON_PIDS
224 $ cat hg.pid >> $DAEMON_PIDS
212
225
213 Create clone with tree manifests enabled
226 Create clone with tree manifests enabled
214
227
215 $ cd ..
228 $ cd ..
216 $ hg clone --config experimental.treemanifest=1 \
229 $ hg clone --config experimental.treemanifest=1 \
217 > http://localhost:$HGPORT repo-mixed -r 1
230 > http://localhost:$HGPORT repo-mixed -r 1
218 adding changesets
231 adding changesets
219 adding manifests
232 adding manifests
220 adding file changes
233 adding file changes
221 added 2 changesets with 14 changes to 11 files
234 added 2 changesets with 14 changes to 11 files
222 updating to branch default
235 updating to branch default
223 11 files updated, 0 files merged, 0 files removed, 0 files unresolved
236 11 files updated, 0 files merged, 0 files removed, 0 files unresolved
224 $ cd repo-mixed
237 $ cd repo-mixed
225 $ test -d .hg/store/meta
238 $ test -d .hg/store/meta
226 [1]
239 [1]
227 $ grep treemanifest .hg/requires
240 $ grep treemanifest .hg/requires
228 treemanifest
241 treemanifest
229
242
230 Should be possible to push updates from flat to tree manifest repo
243 Should be possible to push updates from flat to tree manifest repo
231
244
232 $ hg -R ../repo-flat push ssh://user@dummy/repo-mixed
245 $ hg -R ../repo-flat push ssh://user@dummy/repo-mixed
233 pushing to ssh://user@dummy/repo-mixed
246 pushing to ssh://user@dummy/repo-mixed
234 searching for changes
247 searching for changes
235 remote: adding changesets
248 remote: adding changesets
236 remote: adding manifests
249 remote: adding manifests
237 remote: adding file changes
250 remote: adding file changes
238 remote: added 2 changesets with 3 changes to 3 files
251 remote: added 2 changesets with 3 changes to 3 files
239
252
240 Commit should store revlog per directory
253 Commit should store revlog per directory
241
254
242 $ hg co 1
255 $ hg co 1
243 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
256 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
244 $ echo 3 > a
257 $ echo 3 > a
245 $ echo 3 > dir1/a
258 $ echo 3 > dir1/a
246 $ echo 3 > dir1/dir1/a
259 $ echo 3 > dir1/dir1/a
247 $ hg ci -m 'first tree'
260 $ hg ci -m 'first tree'
248 created new head
261 created new head
249 $ find .hg/store/meta | sort
262 $ find .hg/store/meta | sort
250 .hg/store/meta
263 .hg/store/meta
251 .hg/store/meta/dir1
264 .hg/store/meta/dir1
252 .hg/store/meta/dir1/00manifest.i
265 .hg/store/meta/dir1/00manifest.i
253 .hg/store/meta/dir1/dir1
266 .hg/store/meta/dir1/dir1
254 .hg/store/meta/dir1/dir1/00manifest.i
267 .hg/store/meta/dir1/dir1/00manifest.i
255 .hg/store/meta/dir1/dir2
268 .hg/store/meta/dir1/dir2
256 .hg/store/meta/dir1/dir2/00manifest.i
269 .hg/store/meta/dir1/dir2/00manifest.i
257 .hg/store/meta/dir2
270 .hg/store/meta/dir2
258 .hg/store/meta/dir2/00manifest.i
271 .hg/store/meta/dir2/00manifest.i
259
272
260 Merge of two trees
273 Merge of two trees
261
274
262 $ hg co 2
275 $ hg co 2
263 6 files updated, 0 files merged, 0 files removed, 0 files unresolved
276 6 files updated, 0 files merged, 0 files removed, 0 files unresolved
264 $ hg merge 1
277 $ hg merge 1
265 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
278 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
266 (branch merge, don't forget to commit)
279 (branch merge, don't forget to commit)
267 $ hg ci -m 'merge of flat manifests to new tree manifest'
280 $ hg ci -m 'merge of flat manifests to new tree manifest'
268 created new head
281 created new head
269 $ hg diff -r 3
282 $ hg diff -r 3
270
283
271 Parent of tree root manifest should be flat manifest, and two for merge
284 Parent of tree root manifest should be flat manifest, and two for merge
272
285
273 $ hg debugindex -m
286 $ hg debugindex -m
274 rev offset length delta linkrev nodeid p1 p2
287 rev offset length delta linkrev nodeid p1 p2
275 0 0 80 -1 0 40536115ed9e 000000000000 000000000000
288 0 0 80 -1 0 40536115ed9e 000000000000 000000000000
276 1 80 83 0 1 f3376063c255 40536115ed9e 000000000000
289 1 80 83 0 1 f3376063c255 40536115ed9e 000000000000
277 2 163 89 0 2 5d9b9da231a2 40536115ed9e 000000000000
290 2 163 89 0 2 5d9b9da231a2 40536115ed9e 000000000000
278 3 252 83 2 3 d17d663cbd8a 5d9b9da231a2 f3376063c255
291 3 252 83 2 3 d17d663cbd8a 5d9b9da231a2 f3376063c255
279 4 335 124 1 4 51e32a8c60ee f3376063c255 000000000000
292 4 335 124 1 4 51e32a8c60ee f3376063c255 000000000000
280 5 459 126 2 5 cc5baa78b230 5d9b9da231a2 f3376063c255
293 5 459 126 2 5 cc5baa78b230 5d9b9da231a2 f3376063c255
281
294
282
295
283 Status across flat/tree boundary should work
296 Status across flat/tree boundary should work
284
297
285 $ hg status --rev '.^' --rev .
298 $ hg status --rev '.^' --rev .
286 M a
299 M a
287 M dir1/a
300 M dir1/a
288 M dir1/dir1/a
301 M dir1/dir1/a
289
302
290
303
291 Turning off treemanifest config has no effect
304 Turning off treemanifest config has no effect
292
305
293 $ hg debugindex --dir dir1
306 $ hg debugindex --dir dir1
294 rev offset length delta linkrev nodeid p1 p2
307 rev offset length delta linkrev nodeid p1 p2
295 0 0 127 -1 4 064927a0648a 000000000000 000000000000
308 0 0 127 -1 4 064927a0648a 000000000000 000000000000
296 1 127 111 0 5 25ecb8cb8618 000000000000 000000000000
309 1 127 111 0 5 25ecb8cb8618 000000000000 000000000000
297 $ echo 2 > dir1/a
310 $ echo 2 > dir1/a
298 $ hg --config experimental.treemanifest=False ci -qm 'modify dir1/a'
311 $ hg --config experimental.treemanifest=False ci -qm 'modify dir1/a'
299 $ hg debugindex --dir dir1
312 $ hg debugindex --dir dir1
300 rev offset length delta linkrev nodeid p1 p2
313 rev offset length delta linkrev nodeid p1 p2
301 0 0 127 -1 4 064927a0648a 000000000000 000000000000
314 0 0 127 -1 4 064927a0648a 000000000000 000000000000
302 1 127 111 0 5 25ecb8cb8618 000000000000 000000000000
315 1 127 111 0 5 25ecb8cb8618 000000000000 000000000000
303 2 238 55 1 6 5b16163a30c6 25ecb8cb8618 000000000000
316 2 238 55 1 6 5b16163a30c6 25ecb8cb8618 000000000000
304
317
305 Stripping and recovering changes should work
318 Stripping and recovering changes should work
306
319
307 $ hg st --change tip
320 $ hg st --change tip
308 M dir1/a
321 M dir1/a
309 $ hg --config extensions.strip= strip tip
322 $ hg --config extensions.strip= strip tip
310 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
323 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
311 saved backup bundle to $TESTTMP/repo-mixed/.hg/strip-backup/51cfd7b1e13b-78a2f3ed-backup.hg (glob)
324 saved backup bundle to $TESTTMP/repo-mixed/.hg/strip-backup/51cfd7b1e13b-78a2f3ed-backup.hg (glob)
312 $ hg debugindex --dir dir1
325 $ hg debugindex --dir dir1
313 rev offset length delta linkrev nodeid p1 p2
326 rev offset length delta linkrev nodeid p1 p2
314 0 0 127 -1 4 064927a0648a 000000000000 000000000000
327 0 0 127 -1 4 064927a0648a 000000000000 000000000000
315 1 127 111 0 5 25ecb8cb8618 000000000000 000000000000
328 1 127 111 0 5 25ecb8cb8618 000000000000 000000000000
316 $ hg unbundle -q .hg/strip-backup/*
329 $ hg unbundle -q .hg/strip-backup/*
317 $ hg debugindex --dir dir1
330 $ hg debugindex --dir dir1
318 rev offset length delta linkrev nodeid p1 p2
331 rev offset length delta linkrev nodeid p1 p2
319 0 0 127 -1 4 064927a0648a 000000000000 000000000000
332 0 0 127 -1 4 064927a0648a 000000000000 000000000000
320 1 127 111 0 5 25ecb8cb8618 000000000000 000000000000
333 1 127 111 0 5 25ecb8cb8618 000000000000 000000000000
321 2 238 55 1 6 5b16163a30c6 25ecb8cb8618 000000000000
334 2 238 55 1 6 5b16163a30c6 25ecb8cb8618 000000000000
322 $ hg st --change tip
335 $ hg st --change tip
323 M dir1/a
336 M dir1/a
324
337
325 Shelving and unshelving should work
338 Shelving and unshelving should work
326
339
327 $ echo foo >> dir1/a
340 $ echo foo >> dir1/a
328 $ hg --config extensions.shelve= shelve
341 $ hg --config extensions.shelve= shelve
329 shelved as default
342 shelved as default
330 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
343 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
331 $ hg --config extensions.shelve= unshelve
344 $ hg --config extensions.shelve= unshelve
332 unshelving change 'default'
345 unshelving change 'default'
333 $ hg diff --nodates
346 $ hg diff --nodates
334 diff -r 708a273da119 dir1/a
347 diff -r 708a273da119 dir1/a
335 --- a/dir1/a
348 --- a/dir1/a
336 +++ b/dir1/a
349 +++ b/dir1/a
337 @@ -1,1 +1,2 @@
350 @@ -1,1 +1,2 @@
338 1
351 1
339 +foo
352 +foo
340
353
341 Pushing from treemanifest repo to an empty repo makes that a treemanifest repo
354 Pushing from treemanifest repo to an empty repo makes that a treemanifest repo
342
355
343 $ cd ..
356 $ cd ..
344 $ hg init empty-repo
357 $ hg init empty-repo
345 $ cat << EOF >> empty-repo/.hg/hgrc
358 $ cat << EOF >> empty-repo/.hg/hgrc
346 > [experimental]
359 > [experimental]
347 > changegroup3=yes
360 > changegroup3=yes
348 > EOF
361 > EOF
349 $ grep treemanifest empty-repo/.hg/requires
362 $ grep treemanifest empty-repo/.hg/requires
350 [1]
363 [1]
351 $ hg push -R repo -r 0 empty-repo
364 $ hg push -R repo -r 0 empty-repo
352 pushing to empty-repo
365 pushing to empty-repo
353 searching for changes
366 searching for changes
354 adding changesets
367 adding changesets
355 adding manifests
368 adding manifests
356 adding file changes
369 adding file changes
357 added 1 changesets with 2 changes to 2 files
370 added 1 changesets with 2 changes to 2 files
358 $ grep treemanifest empty-repo/.hg/requires
371 $ grep treemanifest empty-repo/.hg/requires
359 treemanifest
372 treemanifest
360
373
361 Pushing to an empty repo works
374 Pushing to an empty repo works
362
375
363 $ hg --config experimental.treemanifest=1 init clone
376 $ hg --config experimental.treemanifest=1 init clone
364 $ grep treemanifest clone/.hg/requires
377 $ grep treemanifest clone/.hg/requires
365 treemanifest
378 treemanifest
366 $ hg push -R repo clone
379 $ hg push -R repo clone
367 pushing to clone
380 pushing to clone
368 searching for changes
381 searching for changes
369 adding changesets
382 adding changesets
370 adding manifests
383 adding manifests
371 adding file changes
384 adding file changes
372 added 11 changesets with 15 changes to 10 files (+3 heads)
385 added 11 changesets with 15 changes to 10 files (+3 heads)
373 $ grep treemanifest clone/.hg/requires
386 $ grep treemanifest clone/.hg/requires
374 treemanifest
387 treemanifest
375 $ hg -R clone verify
388 $ hg -R clone verify
376 checking changesets
389 checking changesets
377 checking manifests
390 checking manifests
378 checking directory manifests
391 checking directory manifests
379 crosschecking files in changesets and manifests
392 crosschecking files in changesets and manifests
380 checking files
393 checking files
381 10 files, 11 changesets, 15 total revisions
394 10 files, 11 changesets, 15 total revisions
382
395
383 Create deeper repo with tree manifests.
396 Create deeper repo with tree manifests.
384
397
385 $ hg --config experimental.treemanifest=True init deeprepo
398 $ hg --config experimental.treemanifest=True init deeprepo
386 $ cd deeprepo
399 $ cd deeprepo
387
400
388 $ mkdir .A
401 $ mkdir .A
389 $ mkdir b
402 $ mkdir b
390 $ mkdir b/bar
403 $ mkdir b/bar
391 $ mkdir b/bar/orange
404 $ mkdir b/bar/orange
392 $ mkdir b/bar/orange/fly
405 $ mkdir b/bar/orange/fly
393 $ mkdir b/foo
406 $ mkdir b/foo
394 $ mkdir b/foo/apple
407 $ mkdir b/foo/apple
395 $ mkdir b/foo/apple/bees
408 $ mkdir b/foo/apple/bees
396
409
397 $ touch .A/one.txt
410 $ touch .A/one.txt
398 $ touch .A/two.txt
411 $ touch .A/two.txt
399 $ touch b/bar/fruits.txt
412 $ touch b/bar/fruits.txt
400 $ touch b/bar/orange/fly/gnat.py
413 $ touch b/bar/orange/fly/gnat.py
401 $ touch b/bar/orange/fly/housefly.txt
414 $ touch b/bar/orange/fly/housefly.txt
402 $ touch b/foo/apple/bees/flower.py
415 $ touch b/foo/apple/bees/flower.py
403 $ touch c.txt
416 $ touch c.txt
404 $ touch d.py
417 $ touch d.py
405
418
406 $ hg ci -Aqm 'initial'
419 $ hg ci -Aqm 'initial'
407
420
408 We'll see that visitdir works by removing some treemanifest revlogs and running
421 We'll see that visitdir works by removing some treemanifest revlogs and running
409 the files command with various parameters.
422 the files command with various parameters.
410
423
411 Test files from the root.
424 Test files from the root.
412
425
413 $ hg files -r .
426 $ hg files -r .
414 .A/one.txt (glob)
427 .A/one.txt (glob)
415 .A/two.txt (glob)
428 .A/two.txt (glob)
416 b/bar/fruits.txt (glob)
429 b/bar/fruits.txt (glob)
417 b/bar/orange/fly/gnat.py (glob)
430 b/bar/orange/fly/gnat.py (glob)
418 b/bar/orange/fly/housefly.txt (glob)
431 b/bar/orange/fly/housefly.txt (glob)
419 b/foo/apple/bees/flower.py (glob)
432 b/foo/apple/bees/flower.py (glob)
420 c.txt
433 c.txt
421 d.py
434 d.py
422
435
423 Excludes with a glob should not exclude everything from the glob's root
436 Excludes with a glob should not exclude everything from the glob's root
424
437
425 $ hg files -r . -X 'b/fo?' b
438 $ hg files -r . -X 'b/fo?' b
426 b/bar/fruits.txt (glob)
439 b/bar/fruits.txt (glob)
427 b/bar/orange/fly/gnat.py (glob)
440 b/bar/orange/fly/gnat.py (glob)
428 b/bar/orange/fly/housefly.txt (glob)
441 b/bar/orange/fly/housefly.txt (glob)
429 $ cp -r .hg/store .hg/store-copy
442 $ cp -r .hg/store .hg/store-copy
430
443
431 Test files for a subdirectory.
444 Test files for a subdirectory.
432
445
433 $ rm -r .hg/store/meta/~2e_a
446 $ rm -r .hg/store/meta/~2e_a
434 $ hg files -r . b
447 $ hg files -r . b
435 b/bar/fruits.txt (glob)
448 b/bar/fruits.txt (glob)
436 b/bar/orange/fly/gnat.py (glob)
449 b/bar/orange/fly/gnat.py (glob)
437 b/bar/orange/fly/housefly.txt (glob)
450 b/bar/orange/fly/housefly.txt (glob)
438 b/foo/apple/bees/flower.py (glob)
451 b/foo/apple/bees/flower.py (glob)
439 $ cp -r .hg/store-copy/. .hg/store
452 $ cp -r .hg/store-copy/. .hg/store
440
453
441 Test files with just includes and excludes.
454 Test files with just includes and excludes.
442
455
443 $ rm -r .hg/store/meta/~2e_a
456 $ rm -r .hg/store/meta/~2e_a
444 $ rm -r .hg/store/meta/b/bar/orange/fly
457 $ rm -r .hg/store/meta/b/bar/orange/fly
445 $ rm -r .hg/store/meta/b/foo/apple/bees
458 $ rm -r .hg/store/meta/b/foo/apple/bees
446 $ hg files -r . -I path:b/bar -X path:b/bar/orange/fly -I path:b/foo -X path:b/foo/apple/bees
459 $ hg files -r . -I path:b/bar -X path:b/bar/orange/fly -I path:b/foo -X path:b/foo/apple/bees
447 b/bar/fruits.txt (glob)
460 b/bar/fruits.txt (glob)
448 $ cp -r .hg/store-copy/. .hg/store
461 $ cp -r .hg/store-copy/. .hg/store
449
462
450 Test files for a subdirectory, excluding a directory within it.
463 Test files for a subdirectory, excluding a directory within it.
451
464
452 $ rm -r .hg/store/meta/~2e_a
465 $ rm -r .hg/store/meta/~2e_a
453 $ rm -r .hg/store/meta/b/foo
466 $ rm -r .hg/store/meta/b/foo
454 $ hg files -r . -X path:b/foo b
467 $ hg files -r . -X path:b/foo b
455 b/bar/fruits.txt (glob)
468 b/bar/fruits.txt (glob)
456 b/bar/orange/fly/gnat.py (glob)
469 b/bar/orange/fly/gnat.py (glob)
457 b/bar/orange/fly/housefly.txt (glob)
470 b/bar/orange/fly/housefly.txt (glob)
458 $ cp -r .hg/store-copy/. .hg/store
471 $ cp -r .hg/store-copy/. .hg/store
459
472
460 Test files for a sub directory, including only a directory within it, and
473 Test files for a sub directory, including only a directory within it, and
461 including an unrelated directory.
474 including an unrelated directory.
462
475
463 $ rm -r .hg/store/meta/~2e_a
476 $ rm -r .hg/store/meta/~2e_a
464 $ rm -r .hg/store/meta/b/foo
477 $ rm -r .hg/store/meta/b/foo
465 $ hg files -r . -I path:b/bar/orange -I path:a b
478 $ hg files -r . -I path:b/bar/orange -I path:a b
466 b/bar/orange/fly/gnat.py (glob)
479 b/bar/orange/fly/gnat.py (glob)
467 b/bar/orange/fly/housefly.txt (glob)
480 b/bar/orange/fly/housefly.txt (glob)
468 $ cp -r .hg/store-copy/. .hg/store
481 $ cp -r .hg/store-copy/. .hg/store
469
482
470 Test files for a pattern, including a directory, and excluding a directory
483 Test files for a pattern, including a directory, and excluding a directory
471 within that.
484 within that.
472
485
473 $ rm -r .hg/store/meta/~2e_a
486 $ rm -r .hg/store/meta/~2e_a
474 $ rm -r .hg/store/meta/b/foo
487 $ rm -r .hg/store/meta/b/foo
475 $ rm -r .hg/store/meta/b/bar/orange
488 $ rm -r .hg/store/meta/b/bar/orange
476 $ hg files -r . glob:**.txt -I path:b/bar -X path:b/bar/orange
489 $ hg files -r . glob:**.txt -I path:b/bar -X path:b/bar/orange
477 b/bar/fruits.txt (glob)
490 b/bar/fruits.txt (glob)
478 $ cp -r .hg/store-copy/. .hg/store
491 $ cp -r .hg/store-copy/. .hg/store
479
492
480 Add some more changes to the deep repo
493 Add some more changes to the deep repo
481 $ echo narf >> b/bar/fruits.txt
494 $ echo narf >> b/bar/fruits.txt
482 $ hg ci -m narf
495 $ hg ci -m narf
483 $ echo troz >> b/bar/orange/fly/gnat.py
496 $ echo troz >> b/bar/orange/fly/gnat.py
484 $ hg ci -m troz
497 $ hg ci -m troz
485
498
486 Verify works
499 Verify works
487 $ hg verify
500 $ hg verify
488 checking changesets
501 checking changesets
489 checking manifests
502 checking manifests
490 checking directory manifests
503 checking directory manifests
491 crosschecking files in changesets and manifests
504 crosschecking files in changesets and manifests
492 checking files
505 checking files
493 8 files, 3 changesets, 10 total revisions
506 8 files, 3 changesets, 10 total revisions
494
507
495 Dirlogs are included in fncache
508 Dirlogs are included in fncache
496 $ grep meta/.A/00manifest.i .hg/store/fncache
509 $ grep meta/.A/00manifest.i .hg/store/fncache
497 meta/.A/00manifest.i
510 meta/.A/00manifest.i
498
511
499 Rebuilt fncache includes dirlogs
512 Rebuilt fncache includes dirlogs
500 $ rm .hg/store/fncache
513 $ rm .hg/store/fncache
501 $ hg debugrebuildfncache
514 $ hg debugrebuildfncache
502 adding data/.A/one.txt.i
515 adding data/.A/one.txt.i
503 adding data/.A/two.txt.i
516 adding data/.A/two.txt.i
504 adding data/b/bar/fruits.txt.i
517 adding data/b/bar/fruits.txt.i
505 adding data/b/bar/orange/fly/gnat.py.i
518 adding data/b/bar/orange/fly/gnat.py.i
506 adding data/b/bar/orange/fly/housefly.txt.i
519 adding data/b/bar/orange/fly/housefly.txt.i
507 adding data/b/foo/apple/bees/flower.py.i
520 adding data/b/foo/apple/bees/flower.py.i
508 adding data/c.txt.i
521 adding data/c.txt.i
509 adding data/d.py.i
522 adding data/d.py.i
510 adding meta/.A/00manifest.i
523 adding meta/.A/00manifest.i
511 adding meta/b/00manifest.i
524 adding meta/b/00manifest.i
512 adding meta/b/bar/00manifest.i
525 adding meta/b/bar/00manifest.i
513 adding meta/b/bar/orange/00manifest.i
526 adding meta/b/bar/orange/00manifest.i
514 adding meta/b/bar/orange/fly/00manifest.i
527 adding meta/b/bar/orange/fly/00manifest.i
515 adding meta/b/foo/00manifest.i
528 adding meta/b/foo/00manifest.i
516 adding meta/b/foo/apple/00manifest.i
529 adding meta/b/foo/apple/00manifest.i
517 adding meta/b/foo/apple/bees/00manifest.i
530 adding meta/b/foo/apple/bees/00manifest.i
518 16 items added, 0 removed from fncache
531 16 items added, 0 removed from fncache
519
532
520 Finish first server
533 Finish first server
521 $ killdaemons.py
534 $ killdaemons.py
522
535
523 Back up the recently added revlogs
536 Back up the recently added revlogs
524 $ cp -r .hg/store .hg/store-newcopy
537 $ cp -r .hg/store .hg/store-newcopy
525
538
526 Verify reports missing dirlog
539 Verify reports missing dirlog
527 $ rm .hg/store/meta/b/00manifest.*
540 $ rm .hg/store/meta/b/00manifest.*
528 $ hg verify
541 $ hg verify
529 checking changesets
542 checking changesets
530 checking manifests
543 checking manifests
531 checking directory manifests
544 checking directory manifests
532 0: empty or missing b/
545 0: empty or missing b/
533 b/@0: parent-directory manifest refers to unknown revision 67688a370455
546 b/@0: parent-directory manifest refers to unknown revision 67688a370455
534 b/@1: parent-directory manifest refers to unknown revision f38e85d334c5
547 b/@1: parent-directory manifest refers to unknown revision f38e85d334c5
535 b/@2: parent-directory manifest refers to unknown revision 99c9792fd4b0
548 b/@2: parent-directory manifest refers to unknown revision 99c9792fd4b0
536 warning: orphan revlog 'meta/b/bar/00manifest.i'
549 warning: orphan revlog 'meta/b/bar/00manifest.i'
537 warning: orphan revlog 'meta/b/bar/orange/00manifest.i'
550 warning: orphan revlog 'meta/b/bar/orange/00manifest.i'
538 warning: orphan revlog 'meta/b/bar/orange/fly/00manifest.i'
551 warning: orphan revlog 'meta/b/bar/orange/fly/00manifest.i'
539 warning: orphan revlog 'meta/b/foo/00manifest.i'
552 warning: orphan revlog 'meta/b/foo/00manifest.i'
540 warning: orphan revlog 'meta/b/foo/apple/00manifest.i'
553 warning: orphan revlog 'meta/b/foo/apple/00manifest.i'
541 warning: orphan revlog 'meta/b/foo/apple/bees/00manifest.i'
554 warning: orphan revlog 'meta/b/foo/apple/bees/00manifest.i'
542 crosschecking files in changesets and manifests
555 crosschecking files in changesets and manifests
543 b/bar/fruits.txt@0: in changeset but not in manifest
556 b/bar/fruits.txt@0: in changeset but not in manifest
544 b/bar/orange/fly/gnat.py@0: in changeset but not in manifest
557 b/bar/orange/fly/gnat.py@0: in changeset but not in manifest
545 b/bar/orange/fly/housefly.txt@0: in changeset but not in manifest
558 b/bar/orange/fly/housefly.txt@0: in changeset but not in manifest
546 b/foo/apple/bees/flower.py@0: in changeset but not in manifest
559 b/foo/apple/bees/flower.py@0: in changeset but not in manifest
547 checking files
560 checking files
548 8 files, 3 changesets, 10 total revisions
561 8 files, 3 changesets, 10 total revisions
549 6 warnings encountered!
562 6 warnings encountered!
550 8 integrity errors encountered!
563 8 integrity errors encountered!
551 (first damaged changeset appears to be 0)
564 (first damaged changeset appears to be 0)
552 [1]
565 [1]
553 $ cp -r .hg/store-newcopy/. .hg/store
566 $ cp -r .hg/store-newcopy/. .hg/store
554
567
555 Verify reports missing dirlog entry
568 Verify reports missing dirlog entry
556 $ mv -f .hg/store-copy/meta/b/00manifest.* .hg/store/meta/b/
569 $ mv -f .hg/store-copy/meta/b/00manifest.* .hg/store/meta/b/
557 $ hg verify
570 $ hg verify
558 checking changesets
571 checking changesets
559 checking manifests
572 checking manifests
560 checking directory manifests
573 checking directory manifests
561 b/@1: parent-directory manifest refers to unknown revision f38e85d334c5
574 b/@1: parent-directory manifest refers to unknown revision f38e85d334c5
562 b/@2: parent-directory manifest refers to unknown revision 99c9792fd4b0
575 b/@2: parent-directory manifest refers to unknown revision 99c9792fd4b0
563 b/bar/@?: rev 1 points to unexpected changeset 1
576 b/bar/@?: rev 1 points to unexpected changeset 1
564 b/bar/@?: 5e03c4ee5e4a not in parent-directory manifest
577 b/bar/@?: 5e03c4ee5e4a not in parent-directory manifest
565 b/bar/@?: rev 2 points to unexpected changeset 2
578 b/bar/@?: rev 2 points to unexpected changeset 2
566 b/bar/@?: 1b16940d66d6 not in parent-directory manifest
579 b/bar/@?: 1b16940d66d6 not in parent-directory manifest
567 b/bar/orange/@?: rev 1 points to unexpected changeset 2
580 b/bar/orange/@?: rev 1 points to unexpected changeset 2
568 (expected None)
581 (expected None)
569 b/bar/orange/fly/@?: rev 1 points to unexpected changeset 2
582 b/bar/orange/fly/@?: rev 1 points to unexpected changeset 2
570 (expected None)
583 (expected None)
571 crosschecking files in changesets and manifests
584 crosschecking files in changesets and manifests
572 checking files
585 checking files
573 8 files, 3 changesets, 10 total revisions
586 8 files, 3 changesets, 10 total revisions
574 2 warnings encountered!
587 2 warnings encountered!
575 8 integrity errors encountered!
588 8 integrity errors encountered!
576 (first damaged changeset appears to be 1)
589 (first damaged changeset appears to be 1)
577 [1]
590 [1]
578 $ cp -r .hg/store-newcopy/. .hg/store
591 $ cp -r .hg/store-newcopy/. .hg/store
579
592
580 Test cloning a treemanifest repo over http.
593 Test cloning a treemanifest repo over http.
581 $ hg serve -p $HGPORT -d --pid-file=hg.pid --errorlog=errors.log
594 $ hg serve -p $HGPORT -d --pid-file=hg.pid --errorlog=errors.log
582 $ cat hg.pid >> $DAEMON_PIDS
595 $ cat hg.pid >> $DAEMON_PIDS
583 $ cd ..
596 $ cd ..
584 We can clone even with the knob turned off and we'll get a treemanifest repo.
597 We can clone even with the knob turned off and we'll get a treemanifest repo.
585 $ hg clone --config experimental.treemanifest=False \
598 $ hg clone --config experimental.treemanifest=False \
586 > --config experimental.changegroup3=True \
599 > --config experimental.changegroup3=True \
587 > http://localhost:$HGPORT deepclone
600 > http://localhost:$HGPORT deepclone
588 requesting all changes
601 requesting all changes
589 adding changesets
602 adding changesets
590 adding manifests
603 adding manifests
591 adding file changes
604 adding file changes
592 added 3 changesets with 10 changes to 8 files
605 added 3 changesets with 10 changes to 8 files
593 updating to branch default
606 updating to branch default
594 8 files updated, 0 files merged, 0 files removed, 0 files unresolved
607 8 files updated, 0 files merged, 0 files removed, 0 files unresolved
595 No server errors.
608 No server errors.
596 $ cat deeprepo/errors.log
609 $ cat deeprepo/errors.log
597 requires got updated to include treemanifest
610 requires got updated to include treemanifest
598 $ cat deepclone/.hg/requires | grep treemanifest
611 $ cat deepclone/.hg/requires | grep treemanifest
599 treemanifest
612 treemanifest
600 Tree manifest revlogs exist.
613 Tree manifest revlogs exist.
601 $ find deepclone/.hg/store/meta | sort
614 $ find deepclone/.hg/store/meta | sort
602 deepclone/.hg/store/meta
615 deepclone/.hg/store/meta
603 deepclone/.hg/store/meta/b
616 deepclone/.hg/store/meta/b
604 deepclone/.hg/store/meta/b/00manifest.i
617 deepclone/.hg/store/meta/b/00manifest.i
605 deepclone/.hg/store/meta/b/bar
618 deepclone/.hg/store/meta/b/bar
606 deepclone/.hg/store/meta/b/bar/00manifest.i
619 deepclone/.hg/store/meta/b/bar/00manifest.i
607 deepclone/.hg/store/meta/b/bar/orange
620 deepclone/.hg/store/meta/b/bar/orange
608 deepclone/.hg/store/meta/b/bar/orange/00manifest.i
621 deepclone/.hg/store/meta/b/bar/orange/00manifest.i
609 deepclone/.hg/store/meta/b/bar/orange/fly
622 deepclone/.hg/store/meta/b/bar/orange/fly
610 deepclone/.hg/store/meta/b/bar/orange/fly/00manifest.i
623 deepclone/.hg/store/meta/b/bar/orange/fly/00manifest.i
611 deepclone/.hg/store/meta/b/foo
624 deepclone/.hg/store/meta/b/foo
612 deepclone/.hg/store/meta/b/foo/00manifest.i
625 deepclone/.hg/store/meta/b/foo/00manifest.i
613 deepclone/.hg/store/meta/b/foo/apple
626 deepclone/.hg/store/meta/b/foo/apple
614 deepclone/.hg/store/meta/b/foo/apple/00manifest.i
627 deepclone/.hg/store/meta/b/foo/apple/00manifest.i
615 deepclone/.hg/store/meta/b/foo/apple/bees
628 deepclone/.hg/store/meta/b/foo/apple/bees
616 deepclone/.hg/store/meta/b/foo/apple/bees/00manifest.i
629 deepclone/.hg/store/meta/b/foo/apple/bees/00manifest.i
617 deepclone/.hg/store/meta/~2e_a
630 deepclone/.hg/store/meta/~2e_a
618 deepclone/.hg/store/meta/~2e_a/00manifest.i
631 deepclone/.hg/store/meta/~2e_a/00manifest.i
619 Verify passes.
632 Verify passes.
620 $ cd deepclone
633 $ cd deepclone
621 $ hg verify
634 $ hg verify
622 checking changesets
635 checking changesets
623 checking manifests
636 checking manifests
624 checking directory manifests
637 checking directory manifests
625 crosschecking files in changesets and manifests
638 crosschecking files in changesets and manifests
626 checking files
639 checking files
627 8 files, 3 changesets, 10 total revisions
640 8 files, 3 changesets, 10 total revisions
628 $ cd ..
641 $ cd ..
629
642
630 Create clones using old repo formats to use in later tests
643 Create clones using old repo formats to use in later tests
631 $ hg clone --config format.usestore=False \
644 $ hg clone --config format.usestore=False \
632 > --config experimental.changegroup3=True \
645 > --config experimental.changegroup3=True \
633 > http://localhost:$HGPORT deeprepo-basicstore
646 > http://localhost:$HGPORT deeprepo-basicstore
634 requesting all changes
647 requesting all changes
635 adding changesets
648 adding changesets
636 adding manifests
649 adding manifests
637 adding file changes
650 adding file changes
638 added 3 changesets with 10 changes to 8 files
651 added 3 changesets with 10 changes to 8 files
639 updating to branch default
652 updating to branch default
640 8 files updated, 0 files merged, 0 files removed, 0 files unresolved
653 8 files updated, 0 files merged, 0 files removed, 0 files unresolved
641 $ cd deeprepo-basicstore
654 $ cd deeprepo-basicstore
642 $ grep store .hg/requires
655 $ grep store .hg/requires
643 [1]
656 [1]
644 $ hg serve -p $HGPORT1 -d --pid-file=hg.pid --errorlog=errors.log
657 $ hg serve -p $HGPORT1 -d --pid-file=hg.pid --errorlog=errors.log
645 $ cat hg.pid >> $DAEMON_PIDS
658 $ cat hg.pid >> $DAEMON_PIDS
646 $ cd ..
659 $ cd ..
647 $ hg clone --config format.usefncache=False \
660 $ hg clone --config format.usefncache=False \
648 > --config experimental.changegroup3=True \
661 > --config experimental.changegroup3=True \
649 > http://localhost:$HGPORT deeprepo-encodedstore
662 > http://localhost:$HGPORT deeprepo-encodedstore
650 requesting all changes
663 requesting all changes
651 adding changesets
664 adding changesets
652 adding manifests
665 adding manifests
653 adding file changes
666 adding file changes
654 added 3 changesets with 10 changes to 8 files
667 added 3 changesets with 10 changes to 8 files
655 updating to branch default
668 updating to branch default
656 8 files updated, 0 files merged, 0 files removed, 0 files unresolved
669 8 files updated, 0 files merged, 0 files removed, 0 files unresolved
657 $ cd deeprepo-encodedstore
670 $ cd deeprepo-encodedstore
658 $ grep fncache .hg/requires
671 $ grep fncache .hg/requires
659 [1]
672 [1]
660 $ hg serve -p $HGPORT2 -d --pid-file=hg.pid --errorlog=errors.log
673 $ hg serve -p $HGPORT2 -d --pid-file=hg.pid --errorlog=errors.log
661 $ cat hg.pid >> $DAEMON_PIDS
674 $ cat hg.pid >> $DAEMON_PIDS
662 $ cd ..
675 $ cd ..
663
676
664 Local clone with basicstore
677 Local clone with basicstore
665 $ hg clone -U deeprepo-basicstore local-clone-basicstore
678 $ hg clone -U deeprepo-basicstore local-clone-basicstore
666 $ hg -R local-clone-basicstore verify
679 $ hg -R local-clone-basicstore verify
667 checking changesets
680 checking changesets
668 checking manifests
681 checking manifests
669 checking directory manifests
682 checking directory manifests
670 crosschecking files in changesets and manifests
683 crosschecking files in changesets and manifests
671 checking files
684 checking files
672 8 files, 3 changesets, 10 total revisions
685 8 files, 3 changesets, 10 total revisions
673
686
674 Local clone with encodedstore
687 Local clone with encodedstore
675 $ hg clone -U deeprepo-encodedstore local-clone-encodedstore
688 $ hg clone -U deeprepo-encodedstore local-clone-encodedstore
676 $ hg -R local-clone-encodedstore verify
689 $ hg -R local-clone-encodedstore verify
677 checking changesets
690 checking changesets
678 checking manifests
691 checking manifests
679 checking directory manifests
692 checking directory manifests
680 crosschecking files in changesets and manifests
693 crosschecking files in changesets and manifests
681 checking files
694 checking files
682 8 files, 3 changesets, 10 total revisions
695 8 files, 3 changesets, 10 total revisions
683
696
684 Local clone with fncachestore
697 Local clone with fncachestore
685 $ hg clone -U deeprepo local-clone-fncachestore
698 $ hg clone -U deeprepo local-clone-fncachestore
686 $ hg -R local-clone-fncachestore verify
699 $ hg -R local-clone-fncachestore verify
687 checking changesets
700 checking changesets
688 checking manifests
701 checking manifests
689 checking directory manifests
702 checking directory manifests
690 crosschecking files in changesets and manifests
703 crosschecking files in changesets and manifests
691 checking files
704 checking files
692 8 files, 3 changesets, 10 total revisions
705 8 files, 3 changesets, 10 total revisions
693
706
694 Stream clone with basicstore
707 Stream clone with basicstore
695 $ hg clone --config experimental.changegroup3=True --uncompressed -U \
708 $ hg clone --config experimental.changegroup3=True --uncompressed -U \
696 > http://localhost:$HGPORT1 stream-clone-basicstore
709 > http://localhost:$HGPORT1 stream-clone-basicstore
697 streaming all changes
710 streaming all changes
698 18 files to transfer, * of data (glob)
711 18 files to transfer, * of data (glob)
699 transferred * in * seconds (*) (glob)
712 transferred * in * seconds (*) (glob)
700 searching for changes
713 searching for changes
701 no changes found
714 no changes found
702 $ hg -R stream-clone-basicstore verify
715 $ hg -R stream-clone-basicstore verify
703 checking changesets
716 checking changesets
704 checking manifests
717 checking manifests
705 checking directory manifests
718 checking directory manifests
706 crosschecking files in changesets and manifests
719 crosschecking files in changesets and manifests
707 checking files
720 checking files
708 8 files, 3 changesets, 10 total revisions
721 8 files, 3 changesets, 10 total revisions
709
722
710 Stream clone with encodedstore
723 Stream clone with encodedstore
711 $ hg clone --config experimental.changegroup3=True --uncompressed -U \
724 $ hg clone --config experimental.changegroup3=True --uncompressed -U \
712 > http://localhost:$HGPORT2 stream-clone-encodedstore
725 > http://localhost:$HGPORT2 stream-clone-encodedstore
713 streaming all changes
726 streaming all changes
714 18 files to transfer, * of data (glob)
727 18 files to transfer, * of data (glob)
715 transferred * in * seconds (*) (glob)
728 transferred * in * seconds (*) (glob)
716 searching for changes
729 searching for changes
717 no changes found
730 no changes found
718 $ hg -R stream-clone-encodedstore verify
731 $ hg -R stream-clone-encodedstore verify
719 checking changesets
732 checking changesets
720 checking manifests
733 checking manifests
721 checking directory manifests
734 checking directory manifests
722 crosschecking files in changesets and manifests
735 crosschecking files in changesets and manifests
723 checking files
736 checking files
724 8 files, 3 changesets, 10 total revisions
737 8 files, 3 changesets, 10 total revisions
725
738
726 Stream clone with fncachestore
739 Stream clone with fncachestore
727 $ hg clone --config experimental.changegroup3=True --uncompressed -U \
740 $ hg clone --config experimental.changegroup3=True --uncompressed -U \
728 > http://localhost:$HGPORT stream-clone-fncachestore
741 > http://localhost:$HGPORT stream-clone-fncachestore
729 streaming all changes
742 streaming all changes
730 18 files to transfer, * of data (glob)
743 18 files to transfer, * of data (glob)
731 transferred * in * seconds (*) (glob)
744 transferred * in * seconds (*) (glob)
732 searching for changes
745 searching for changes
733 no changes found
746 no changes found
734 $ hg -R stream-clone-fncachestore verify
747 $ hg -R stream-clone-fncachestore verify
735 checking changesets
748 checking changesets
736 checking manifests
749 checking manifests
737 checking directory manifests
750 checking directory manifests
738 crosschecking files in changesets and manifests
751 crosschecking files in changesets and manifests
739 checking files
752 checking files
740 8 files, 3 changesets, 10 total revisions
753 8 files, 3 changesets, 10 total revisions
741
754
742 Packed bundle
755 Packed bundle
743 $ hg -R deeprepo debugcreatestreamclonebundle repo-packed.hg
756 $ hg -R deeprepo debugcreatestreamclonebundle repo-packed.hg
744 writing 3349 bytes for 18 files
757 writing 3349 bytes for 18 files
745 bundle requirements: generaldelta, revlogv1, treemanifest
758 bundle requirements: generaldelta, revlogv1, treemanifest
746 $ hg debugbundle --spec repo-packed.hg
759 $ hg debugbundle --spec repo-packed.hg
747 none-packed1;requirements%3Dgeneraldelta%2Crevlogv1%2Ctreemanifest
760 none-packed1;requirements%3Dgeneraldelta%2Crevlogv1%2Ctreemanifest
748
761
749 Bundle with changegroup2 is not supported
762 Bundle with changegroup2 is not supported
750
763
751 $ hg -R deeprepo bundle --all -t v2 deeprepo.bundle
764 $ hg -R deeprepo bundle --all -t v2 deeprepo.bundle
752 abort: repository does not support bundle version 02
765 abort: repository does not support bundle version 02
753 [255]
766 [255]
754
767
755 Pull does not include changegroup for manifest the client already has from
768 Pull does not include changegroup for manifest the client already has from
756 other branch
769 other branch
757
770
758 $ mkdir grafted-dir-repo
771 $ mkdir grafted-dir-repo
759 $ cd grafted-dir-repo
772 $ cd grafted-dir-repo
760 $ hg --config experimental.treemanifest=1 init
773 $ hg --config experimental.treemanifest=1 init
761 $ mkdir dir
774 $ mkdir dir
762 $ echo a > dir/file
775 $ echo a > dir/file
763 $ echo a > file
776 $ echo a > file
764 $ hg ci -Am initial
777 $ hg ci -Am initial
765 adding dir/file
778 adding dir/file
766 adding file
779 adding file
767 $ echo b > dir/file
780 $ echo b > dir/file
768 $ hg ci -m updated
781 $ hg ci -m updated
769 $ hg co '.^'
782 $ hg co '.^'
770 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
783 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
771 $ hg revert -r tip dir/
784 $ hg revert -r tip dir/
772 reverting dir/file (glob)
785 reverting dir/file (glob)
773 $ echo b > file # to make sure root manifest is sent
786 $ echo b > file # to make sure root manifest is sent
774 $ hg ci -m grafted
787 $ hg ci -m grafted
775 created new head
788 created new head
776 $ cd ..
789 $ cd ..
777
790
778 $ hg --config experimental.treemanifest=1 clone --pull -r 1 \
791 $ hg --config experimental.treemanifest=1 clone --pull -r 1 \
779 > grafted-dir-repo grafted-dir-repo-clone
792 > grafted-dir-repo grafted-dir-repo-clone
780 adding changesets
793 adding changesets
781 adding manifests
794 adding manifests
782 adding file changes
795 adding file changes
783 added 2 changesets with 3 changes to 2 files
796 added 2 changesets with 3 changes to 2 files
784 updating to branch default
797 updating to branch default
785 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
798 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
786 $ cd grafted-dir-repo-clone
799 $ cd grafted-dir-repo-clone
787 $ hg pull -r 2
800 $ hg pull -r 2
788 pulling from $TESTTMP/grafted-dir-repo (glob)
801 pulling from $TESTTMP/grafted-dir-repo (glob)
789 searching for changes
802 searching for changes
790 adding changesets
803 adding changesets
791 adding manifests
804 adding manifests
792 adding file changes
805 adding file changes
793 added 1 changesets with 1 changes to 1 files (+1 heads)
806 added 1 changesets with 1 changes to 1 files (+1 heads)
794 (run 'hg heads' to see heads, 'hg merge' to merge)
807 (run 'hg heads' to see heads, 'hg merge' to merge)
795
808
General Comments 0
You need to be logged in to leave comments. Login now