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