##// END OF EJS Templates
revlog-split: also check a case where bundle contains multiple changegroup...
marmoute -
r51319:2bb2a1ff stable
parent child Browse files
Show More
@@ -1,457 +1,557 b''
1 Create an extension to test bundle2 with multiple changegroups
1 Create an extension to test bundle2 with multiple changegroups
2
2
3 $ cat > bundle2.py <<EOF
3 $ cat > bundle2.py <<EOF
4 > """
4 > """
5 > """
5 > """
6 > from mercurial import changegroup, discovery, exchange
6 > from mercurial import changegroup, discovery, exchange
7 >
7 >
8 > def _getbundlechangegrouppart(bundler, repo, source, bundlecaps=None,
8 > def _getbundlechangegrouppart(bundler, repo, source, bundlecaps=None,
9 > b2caps=None, heads=None, common=None,
9 > b2caps=None, heads=None, common=None,
10 > **kwargs):
10 > **kwargs):
11 > # Create two changegroups given the common changesets and heads for the
11 > # Create two changegroups given the common changesets and heads for the
12 > # changegroup part we are being requested. Use the parent of each head
12 > # changegroup part we are being requested. Use the parent of each head
13 > # in 'heads' as intermediate heads for the first changegroup.
13 > # in 'heads' as intermediate heads for the first changegroup.
14 > intermediates = [repo[r].p1().node() for r in heads]
14 > intermediates = [repo[r].p1().node() for r in heads]
15 > outgoing = discovery.outgoing(repo, common, intermediates)
15 > outgoing = discovery.outgoing(repo, common, intermediates)
16 > cg = changegroup.makechangegroup(repo, outgoing, b'01',
16 > cg = changegroup.makechangegroup(repo, outgoing, b'01',
17 > source, bundlecaps=bundlecaps)
17 > source, bundlecaps=bundlecaps)
18 > bundler.newpart(b'output', data=b'changegroup1')
18 > bundler.newpart(b'output', data=b'changegroup1')
19 > bundler.newpart(b'changegroup', data=cg.getchunks())
19 > bundler.newpart(b'changegroup', data=cg.getchunks())
20 > outgoing = discovery.outgoing(repo, common + intermediates, heads)
20 > outgoing = discovery.outgoing(repo, common + intermediates, heads)
21 > cg = changegroup.makechangegroup(repo, outgoing, b'01',
21 > cg = changegroup.makechangegroup(repo, outgoing, b'01',
22 > source, bundlecaps=bundlecaps)
22 > source, bundlecaps=bundlecaps)
23 > bundler.newpart(b'output', data=b'changegroup2')
23 > bundler.newpart(b'output', data=b'changegroup2')
24 > bundler.newpart(b'changegroup', data=cg.getchunks())
24 > bundler.newpart(b'changegroup', data=cg.getchunks())
25 >
25 >
26 > def _pull(repo, *args, **kwargs):
26 > def _pull(repo, *args, **kwargs):
27 > pullop = _orig_pull(repo, *args, **kwargs)
27 > pullop = _orig_pull(repo, *args, **kwargs)
28 > repo.ui.write(b'pullop.cgresult is %d\n' % pullop.cgresult)
28 > repo.ui.write(b'pullop.cgresult is %d\n' % pullop.cgresult)
29 > return pullop
29 > return pullop
30 >
30 >
31 > _orig_pull = exchange.pull
31 > _orig_pull = exchange.pull
32 > exchange.pull = _pull
32 > exchange.pull = _pull
33 > exchange.getbundle2partsmapping[b'changegroup'] = _getbundlechangegrouppart
33 > exchange.getbundle2partsmapping[b'changegroup'] = _getbundlechangegrouppart
34 > EOF
34 > EOF
35
35
36 $ cat >> $HGRCPATH << EOF
36 $ cat >> $HGRCPATH << EOF
37 > [command-templates]
37 > [command-templates]
38 > log={rev}:{node|short} {phase} {author} {bookmarks} {desc|firstline}
38 > log={rev}:{node|short} {phase} {author} {bookmarks} {desc|firstline}
39 > EOF
39 > EOF
40
40
41 Start with a simple repository with a single commit
41 Start with a simple repository with a single commit
42
42
43 $ hg init repo
43 $ hg init repo
44 $ cd repo
44 $ cd repo
45 $ cat > .hg/hgrc << EOF
45 $ cat > .hg/hgrc << EOF
46 > [extensions]
46 > [extensions]
47 > bundle2=$TESTTMP/bundle2.py
47 > bundle2=$TESTTMP/bundle2.py
48 > EOF
48 > EOF
49
49
50 $ echo A > A
50 $ echo A > A
51 $ hg commit -A -m A -q
51 $ hg commit -A -m A -q
52 $ cd ..
52 $ cd ..
53
53
54 Clone
54 Clone
55
55
56 $ hg clone -q repo clone
56 $ hg clone -q repo clone
57
57
58 Add two linear commits
58 Add two linear commits
59
59
60 $ cd repo
60 $ cd repo
61 $ echo B > B
61 $ echo B > B
62 $ hg commit -A -m B -q
62 $ hg commit -A -m B -q
63 $ echo C > C
63 $ echo C > C
64 $ hg commit -A -m C -q
64 $ hg commit -A -m C -q
65
65
66 $ cd ../clone
66 $ cd ../clone
67 $ cat >> .hg/hgrc <<EOF
67 $ cat >> .hg/hgrc <<EOF
68 > [hooks]
68 > [hooks]
69 > pretxnchangegroup = sh -c "printenv.py --line pretxnchangegroup"
69 > pretxnchangegroup = sh -c "printenv.py --line pretxnchangegroup"
70 > changegroup = sh -c "printenv.py --line changegroup"
70 > changegroup = sh -c "printenv.py --line changegroup"
71 > incoming = sh -c "printenv.py --line incoming"
71 > incoming = sh -c "printenv.py --line incoming"
72 > EOF
72 > EOF
73
73
74 Pull the new commits in the clone
74 Pull the new commits in the clone
75
75
76 $ hg pull
76 $ hg pull
77 pulling from $TESTTMP/repo
77 pulling from $TESTTMP/repo
78 searching for changes
78 searching for changes
79 remote: changegroup1
79 remote: changegroup1
80 adding changesets
80 adding changesets
81 adding manifests
81 adding manifests
82 adding file changes
82 adding file changes
83 pretxnchangegroup hook: HG_HOOKNAME=pretxnchangegroup
83 pretxnchangegroup hook: HG_HOOKNAME=pretxnchangegroup
84 HG_HOOKTYPE=pretxnchangegroup
84 HG_HOOKTYPE=pretxnchangegroup
85 HG_NODE=27547f69f25460a52fff66ad004e58da7ad3fb56
85 HG_NODE=27547f69f25460a52fff66ad004e58da7ad3fb56
86 HG_NODE_LAST=27547f69f25460a52fff66ad004e58da7ad3fb56
86 HG_NODE_LAST=27547f69f25460a52fff66ad004e58da7ad3fb56
87 HG_PENDING=$TESTTMP/clone
87 HG_PENDING=$TESTTMP/clone
88 HG_SOURCE=pull
88 HG_SOURCE=pull
89 HG_TXNID=TXN:$ID$
89 HG_TXNID=TXN:$ID$
90 HG_TXNNAME=pull
90 HG_TXNNAME=pull
91 file:/*/$TESTTMP/repo (glob)
91 file:/*/$TESTTMP/repo (glob)
92 HG_URL=file:$TESTTMP/repo
92 HG_URL=file:$TESTTMP/repo
93
93
94 remote: changegroup2
94 remote: changegroup2
95 adding changesets
95 adding changesets
96 adding manifests
96 adding manifests
97 adding file changes
97 adding file changes
98 pretxnchangegroup hook: HG_HOOKNAME=pretxnchangegroup
98 pretxnchangegroup hook: HG_HOOKNAME=pretxnchangegroup
99 HG_HOOKTYPE=pretxnchangegroup
99 HG_HOOKTYPE=pretxnchangegroup
100 HG_NODE=f838bfaca5c7226600ebcfd84f3c3c13a28d3757
100 HG_NODE=f838bfaca5c7226600ebcfd84f3c3c13a28d3757
101 HG_NODE_LAST=f838bfaca5c7226600ebcfd84f3c3c13a28d3757
101 HG_NODE_LAST=f838bfaca5c7226600ebcfd84f3c3c13a28d3757
102 HG_PENDING=$TESTTMP/clone
102 HG_PENDING=$TESTTMP/clone
103 HG_PHASES_MOVED=1
103 HG_PHASES_MOVED=1
104 HG_SOURCE=pull
104 HG_SOURCE=pull
105 HG_TXNID=TXN:$ID$
105 HG_TXNID=TXN:$ID$
106 HG_TXNNAME=pull
106 HG_TXNNAME=pull
107 file:/*/$TESTTMP/repo (glob)
107 file:/*/$TESTTMP/repo (glob)
108 HG_URL=file:$TESTTMP/repo
108 HG_URL=file:$TESTTMP/repo
109
109
110 added 2 changesets with 2 changes to 2 files
110 added 2 changesets with 2 changes to 2 files
111 new changesets 27547f69f254:f838bfaca5c7
111 new changesets 27547f69f254:f838bfaca5c7
112 changegroup hook: HG_HOOKNAME=changegroup
112 changegroup hook: HG_HOOKNAME=changegroup
113 HG_HOOKTYPE=changegroup
113 HG_HOOKTYPE=changegroup
114 HG_NODE=27547f69f25460a52fff66ad004e58da7ad3fb56
114 HG_NODE=27547f69f25460a52fff66ad004e58da7ad3fb56
115 HG_NODE_LAST=27547f69f25460a52fff66ad004e58da7ad3fb56
115 HG_NODE_LAST=27547f69f25460a52fff66ad004e58da7ad3fb56
116 HG_SOURCE=pull
116 HG_SOURCE=pull
117 HG_TXNID=TXN:$ID$
117 HG_TXNID=TXN:$ID$
118 HG_TXNNAME=pull
118 HG_TXNNAME=pull
119 file:/*/$TESTTMP/repo (glob)
119 file:/*/$TESTTMP/repo (glob)
120 HG_URL=file:$TESTTMP/repo
120 HG_URL=file:$TESTTMP/repo
121
121
122 incoming hook: HG_HOOKNAME=incoming
122 incoming hook: HG_HOOKNAME=incoming
123 HG_HOOKTYPE=incoming
123 HG_HOOKTYPE=incoming
124 HG_NODE=27547f69f25460a52fff66ad004e58da7ad3fb56
124 HG_NODE=27547f69f25460a52fff66ad004e58da7ad3fb56
125 HG_SOURCE=pull
125 HG_SOURCE=pull
126 HG_TXNID=TXN:$ID$
126 HG_TXNID=TXN:$ID$
127 HG_TXNNAME=pull
127 HG_TXNNAME=pull
128 file:/*/$TESTTMP/repo (glob)
128 file:/*/$TESTTMP/repo (glob)
129 HG_URL=file:$TESTTMP/repo
129 HG_URL=file:$TESTTMP/repo
130
130
131 changegroup hook: HG_HOOKNAME=changegroup
131 changegroup hook: HG_HOOKNAME=changegroup
132 HG_HOOKTYPE=changegroup
132 HG_HOOKTYPE=changegroup
133 HG_NODE=f838bfaca5c7226600ebcfd84f3c3c13a28d3757
133 HG_NODE=f838bfaca5c7226600ebcfd84f3c3c13a28d3757
134 HG_NODE_LAST=f838bfaca5c7226600ebcfd84f3c3c13a28d3757
134 HG_NODE_LAST=f838bfaca5c7226600ebcfd84f3c3c13a28d3757
135 HG_PHASES_MOVED=1
135 HG_PHASES_MOVED=1
136 HG_SOURCE=pull
136 HG_SOURCE=pull
137 HG_TXNID=TXN:$ID$
137 HG_TXNID=TXN:$ID$
138 HG_TXNNAME=pull
138 HG_TXNNAME=pull
139 file:/*/$TESTTMP/repo (glob)
139 file:/*/$TESTTMP/repo (glob)
140 HG_URL=file:$TESTTMP/repo
140 HG_URL=file:$TESTTMP/repo
141
141
142 incoming hook: HG_HOOKNAME=incoming
142 incoming hook: HG_HOOKNAME=incoming
143 HG_HOOKTYPE=incoming
143 HG_HOOKTYPE=incoming
144 HG_NODE=f838bfaca5c7226600ebcfd84f3c3c13a28d3757
144 HG_NODE=f838bfaca5c7226600ebcfd84f3c3c13a28d3757
145 HG_PHASES_MOVED=1
145 HG_PHASES_MOVED=1
146 HG_SOURCE=pull
146 HG_SOURCE=pull
147 HG_TXNID=TXN:$ID$
147 HG_TXNID=TXN:$ID$
148 HG_TXNNAME=pull
148 HG_TXNNAME=pull
149 file:/*/$TESTTMP/repo (glob)
149 file:/*/$TESTTMP/repo (glob)
150 HG_URL=file:$TESTTMP/repo
150 HG_URL=file:$TESTTMP/repo
151
151
152 pullop.cgresult is 1
152 pullop.cgresult is 1
153 (run 'hg update' to get a working copy)
153 (run 'hg update' to get a working copy)
154 $ hg update
154 $ hg update
155 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
155 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
156 $ hg log -G
156 $ hg log -G
157 @ 2:f838bfaca5c7 public test C
157 @ 2:f838bfaca5c7 public test C
158 |
158 |
159 o 1:27547f69f254 public test B
159 o 1:27547f69f254 public test B
160 |
160 |
161 o 0:4a2df7238c3b public test A
161 o 0:4a2df7238c3b public test A
162
162
163 Add more changesets with multiple heads to the original repository
163 Add more changesets with multiple heads to the original repository
164
164
165 $ cd ../repo
165 $ cd ../repo
166 $ echo D > D
166 $ echo D > D
167 $ hg commit -A -m D -q
167 $ hg commit -A -m D -q
168 $ hg up -r 1
168 $ hg up -r 1
169 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
169 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
170 $ echo E > E
170 $ echo E > E
171 $ hg commit -A -m E -q
171 $ hg commit -A -m E -q
172 $ echo F > F
172 $ echo F > F
173 $ hg commit -A -m F -q
173 $ hg commit -A -m F -q
174 $ hg up -r 1
174 $ hg up -r 1
175 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
175 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
176 $ echo G > G
176 $ echo G > G
177 $ hg commit -A -m G -q
177 $ hg commit -A -m G -q
178 $ hg up -r 3
178 $ hg up -r 3
179 2 files updated, 0 files merged, 1 files removed, 0 files unresolved
179 2 files updated, 0 files merged, 1 files removed, 0 files unresolved
180 $ echo H > H
180 $ echo H > H
181 $ hg commit -A -m H -q
181 $ hg commit -A -m H -q
182 $ hg log -G
182 $ hg log -G
183 @ 7:5cd59d311f65 draft test H
183 @ 7:5cd59d311f65 draft test H
184 |
184 |
185 | o 6:1d14c3ce6ac0 draft test G
185 | o 6:1d14c3ce6ac0 draft test G
186 | |
186 | |
187 | | o 5:7f219660301f draft test F
187 | | o 5:7f219660301f draft test F
188 | | |
188 | | |
189 | | o 4:8a5212ebc852 draft test E
189 | | o 4:8a5212ebc852 draft test E
190 | |/
190 | |/
191 o | 3:b3325c91a4d9 draft test D
191 o | 3:b3325c91a4d9 draft test D
192 | |
192 | |
193 o | 2:f838bfaca5c7 draft test C
193 o | 2:f838bfaca5c7 draft test C
194 |/
194 |/
195 o 1:27547f69f254 draft test B
195 o 1:27547f69f254 draft test B
196 |
196 |
197 o 0:4a2df7238c3b draft test A
197 o 0:4a2df7238c3b draft test A
198
198
199 New heads are reported during transfer and properly accounted for in
199 New heads are reported during transfer and properly accounted for in
200 pullop.cgresult
200 pullop.cgresult
201
201
202 $ cd ../clone
202 $ cd ../clone
203 $ hg pull
203 $ hg pull
204 pulling from $TESTTMP/repo
204 pulling from $TESTTMP/repo
205 searching for changes
205 searching for changes
206 remote: changegroup1
206 remote: changegroup1
207 adding changesets
207 adding changesets
208 adding manifests
208 adding manifests
209 adding file changes
209 adding file changes
210 pretxnchangegroup hook: HG_HOOKNAME=pretxnchangegroup
210 pretxnchangegroup hook: HG_HOOKNAME=pretxnchangegroup
211 HG_HOOKTYPE=pretxnchangegroup
211 HG_HOOKTYPE=pretxnchangegroup
212 HG_NODE=b3325c91a4d916bcc4cdc83ea3fe4ece46a42f6e
212 HG_NODE=b3325c91a4d916bcc4cdc83ea3fe4ece46a42f6e
213 HG_NODE_LAST=8a5212ebc8527f9fb821601504794e3eb11a1ed3
213 HG_NODE_LAST=8a5212ebc8527f9fb821601504794e3eb11a1ed3
214 HG_PENDING=$TESTTMP/clone
214 HG_PENDING=$TESTTMP/clone
215 HG_SOURCE=pull
215 HG_SOURCE=pull
216 HG_TXNID=TXN:$ID$
216 HG_TXNID=TXN:$ID$
217 HG_TXNNAME=pull
217 HG_TXNNAME=pull
218 file:/*/$TESTTMP/repo (glob)
218 file:/*/$TESTTMP/repo (glob)
219 HG_URL=file:$TESTTMP/repo
219 HG_URL=file:$TESTTMP/repo
220
220
221 remote: changegroup2
221 remote: changegroup2
222 adding changesets
222 adding changesets
223 adding manifests
223 adding manifests
224 adding file changes
224 adding file changes
225 pretxnchangegroup hook: HG_HOOKNAME=pretxnchangegroup
225 pretxnchangegroup hook: HG_HOOKNAME=pretxnchangegroup
226 HG_HOOKTYPE=pretxnchangegroup
226 HG_HOOKTYPE=pretxnchangegroup
227 HG_NODE=7f219660301fe4c8a116f714df5e769695cc2b46
227 HG_NODE=7f219660301fe4c8a116f714df5e769695cc2b46
228 HG_NODE_LAST=5cd59d311f6508b8e0ed28a266756c859419c9f1
228 HG_NODE_LAST=5cd59d311f6508b8e0ed28a266756c859419c9f1
229 HG_PENDING=$TESTTMP/clone
229 HG_PENDING=$TESTTMP/clone
230 HG_PHASES_MOVED=1
230 HG_PHASES_MOVED=1
231 HG_SOURCE=pull
231 HG_SOURCE=pull
232 HG_TXNID=TXN:$ID$
232 HG_TXNID=TXN:$ID$
233 HG_TXNNAME=pull
233 HG_TXNNAME=pull
234 file:/*/$TESTTMP/repo (glob)
234 file:/*/$TESTTMP/repo (glob)
235 HG_URL=file:$TESTTMP/repo
235 HG_URL=file:$TESTTMP/repo
236
236
237 added 5 changesets with 5 changes to 5 files (+2 heads)
237 added 5 changesets with 5 changes to 5 files (+2 heads)
238 new changesets b3325c91a4d9:5cd59d311f65
238 new changesets b3325c91a4d9:5cd59d311f65
239 changegroup hook: HG_HOOKNAME=changegroup
239 changegroup hook: HG_HOOKNAME=changegroup
240 HG_HOOKTYPE=changegroup
240 HG_HOOKTYPE=changegroup
241 HG_NODE=b3325c91a4d916bcc4cdc83ea3fe4ece46a42f6e
241 HG_NODE=b3325c91a4d916bcc4cdc83ea3fe4ece46a42f6e
242 HG_NODE_LAST=8a5212ebc8527f9fb821601504794e3eb11a1ed3
242 HG_NODE_LAST=8a5212ebc8527f9fb821601504794e3eb11a1ed3
243 HG_SOURCE=pull
243 HG_SOURCE=pull
244 HG_TXNID=TXN:$ID$
244 HG_TXNID=TXN:$ID$
245 HG_TXNNAME=pull
245 HG_TXNNAME=pull
246 file:/*/$TESTTMP/repo (glob)
246 file:/*/$TESTTMP/repo (glob)
247 HG_URL=file:$TESTTMP/repo
247 HG_URL=file:$TESTTMP/repo
248
248
249 incoming hook: HG_HOOKNAME=incoming
249 incoming hook: HG_HOOKNAME=incoming
250 HG_HOOKTYPE=incoming
250 HG_HOOKTYPE=incoming
251 HG_NODE=b3325c91a4d916bcc4cdc83ea3fe4ece46a42f6e
251 HG_NODE=b3325c91a4d916bcc4cdc83ea3fe4ece46a42f6e
252 HG_SOURCE=pull
252 HG_SOURCE=pull
253 HG_TXNID=TXN:$ID$
253 HG_TXNID=TXN:$ID$
254 HG_TXNNAME=pull
254 HG_TXNNAME=pull
255 file:/*/$TESTTMP/repo (glob)
255 file:/*/$TESTTMP/repo (glob)
256 HG_URL=file:$TESTTMP/repo
256 HG_URL=file:$TESTTMP/repo
257
257
258 incoming hook: HG_HOOKNAME=incoming
258 incoming hook: HG_HOOKNAME=incoming
259 HG_HOOKTYPE=incoming
259 HG_HOOKTYPE=incoming
260 HG_NODE=8a5212ebc8527f9fb821601504794e3eb11a1ed3
260 HG_NODE=8a5212ebc8527f9fb821601504794e3eb11a1ed3
261 HG_SOURCE=pull
261 HG_SOURCE=pull
262 HG_TXNID=TXN:$ID$
262 HG_TXNID=TXN:$ID$
263 HG_TXNNAME=pull
263 HG_TXNNAME=pull
264 file:/*/$TESTTMP/repo (glob)
264 file:/*/$TESTTMP/repo (glob)
265 HG_URL=file:$TESTTMP/repo
265 HG_URL=file:$TESTTMP/repo
266
266
267 changegroup hook: HG_HOOKNAME=changegroup
267 changegroup hook: HG_HOOKNAME=changegroup
268 HG_HOOKTYPE=changegroup
268 HG_HOOKTYPE=changegroup
269 HG_NODE=7f219660301fe4c8a116f714df5e769695cc2b46
269 HG_NODE=7f219660301fe4c8a116f714df5e769695cc2b46
270 HG_NODE_LAST=5cd59d311f6508b8e0ed28a266756c859419c9f1
270 HG_NODE_LAST=5cd59d311f6508b8e0ed28a266756c859419c9f1
271 HG_PHASES_MOVED=1
271 HG_PHASES_MOVED=1
272 HG_SOURCE=pull
272 HG_SOURCE=pull
273 HG_TXNID=TXN:$ID$
273 HG_TXNID=TXN:$ID$
274 HG_TXNNAME=pull
274 HG_TXNNAME=pull
275 file:/*/$TESTTMP/repo (glob)
275 file:/*/$TESTTMP/repo (glob)
276 HG_URL=file:$TESTTMP/repo
276 HG_URL=file:$TESTTMP/repo
277
277
278 incoming hook: HG_HOOKNAME=incoming
278 incoming hook: HG_HOOKNAME=incoming
279 HG_HOOKTYPE=incoming
279 HG_HOOKTYPE=incoming
280 HG_NODE=7f219660301fe4c8a116f714df5e769695cc2b46
280 HG_NODE=7f219660301fe4c8a116f714df5e769695cc2b46
281 HG_PHASES_MOVED=1
281 HG_PHASES_MOVED=1
282 HG_SOURCE=pull
282 HG_SOURCE=pull
283 HG_TXNID=TXN:$ID$
283 HG_TXNID=TXN:$ID$
284 HG_TXNNAME=pull
284 HG_TXNNAME=pull
285 file:/*/$TESTTMP/repo (glob)
285 file:/*/$TESTTMP/repo (glob)
286 HG_URL=file:$TESTTMP/repo
286 HG_URL=file:$TESTTMP/repo
287
287
288 incoming hook: HG_HOOKNAME=incoming
288 incoming hook: HG_HOOKNAME=incoming
289 HG_HOOKTYPE=incoming
289 HG_HOOKTYPE=incoming
290 HG_NODE=1d14c3ce6ac0582d2809220d33e8cd7a696e0156
290 HG_NODE=1d14c3ce6ac0582d2809220d33e8cd7a696e0156
291 HG_PHASES_MOVED=1
291 HG_PHASES_MOVED=1
292 HG_SOURCE=pull
292 HG_SOURCE=pull
293 HG_TXNID=TXN:$ID$
293 HG_TXNID=TXN:$ID$
294 HG_TXNNAME=pull
294 HG_TXNNAME=pull
295 file:/*/$TESTTMP/repo (glob)
295 file:/*/$TESTTMP/repo (glob)
296 HG_URL=file:$TESTTMP/repo
296 HG_URL=file:$TESTTMP/repo
297
297
298 incoming hook: HG_HOOKNAME=incoming
298 incoming hook: HG_HOOKNAME=incoming
299 HG_HOOKTYPE=incoming
299 HG_HOOKTYPE=incoming
300 HG_NODE=5cd59d311f6508b8e0ed28a266756c859419c9f1
300 HG_NODE=5cd59d311f6508b8e0ed28a266756c859419c9f1
301 HG_PHASES_MOVED=1
301 HG_PHASES_MOVED=1
302 HG_SOURCE=pull
302 HG_SOURCE=pull
303 HG_TXNID=TXN:$ID$
303 HG_TXNID=TXN:$ID$
304 HG_TXNNAME=pull
304 HG_TXNNAME=pull
305 file:/*/$TESTTMP/repo (glob)
305 file:/*/$TESTTMP/repo (glob)
306 HG_URL=file:$TESTTMP/repo
306 HG_URL=file:$TESTTMP/repo
307
307
308 pullop.cgresult is 3
308 pullop.cgresult is 3
309 (run 'hg heads' to see heads, 'hg merge' to merge)
309 (run 'hg heads' to see heads, 'hg merge' to merge)
310 $ hg log -G
310 $ hg log -G
311 o 7:5cd59d311f65 public test H
311 o 7:5cd59d311f65 public test H
312 |
312 |
313 | o 6:1d14c3ce6ac0 public test G
313 | o 6:1d14c3ce6ac0 public test G
314 | |
314 | |
315 | | o 5:7f219660301f public test F
315 | | o 5:7f219660301f public test F
316 | | |
316 | | |
317 | | o 4:8a5212ebc852 public test E
317 | | o 4:8a5212ebc852 public test E
318 | |/
318 | |/
319 o | 3:b3325c91a4d9 public test D
319 o | 3:b3325c91a4d9 public test D
320 | |
320 | |
321 @ | 2:f838bfaca5c7 public test C
321 @ | 2:f838bfaca5c7 public test C
322 |/
322 |/
323 o 1:27547f69f254 public test B
323 o 1:27547f69f254 public test B
324 |
324 |
325 o 0:4a2df7238c3b public test A
325 o 0:4a2df7238c3b public test A
326
326
327 Removing a head from the original repository by merging it
327 Removing a head from the original repository by merging it
328
328
329 $ cd ../repo
329 $ cd ../repo
330 $ hg merge -r 6 -q
330 $ hg merge -r 6 -q
331 $ hg commit -m Merge
331 $ hg commit -m Merge
332 $ echo I > I
332 $ echo I > I
333 $ hg commit -A -m H -q
333 $ hg commit -A -m H -q
334 $ hg log -G
334 $ hg log -G
335 @ 9:9d18e5bd9ab0 draft test H
335 @ 9:9d18e5bd9ab0 draft test H
336 |
336 |
337 o 8:71bd7b46de72 draft test Merge
337 o 8:71bd7b46de72 draft test Merge
338 |\
338 |\
339 | o 7:5cd59d311f65 draft test H
339 | o 7:5cd59d311f65 draft test H
340 | |
340 | |
341 o | 6:1d14c3ce6ac0 draft test G
341 o | 6:1d14c3ce6ac0 draft test G
342 | |
342 | |
343 | | o 5:7f219660301f draft test F
343 | | o 5:7f219660301f draft test F
344 | | |
344 | | |
345 +---o 4:8a5212ebc852 draft test E
345 +---o 4:8a5212ebc852 draft test E
346 | |
346 | |
347 | o 3:b3325c91a4d9 draft test D
347 | o 3:b3325c91a4d9 draft test D
348 | |
348 | |
349 | o 2:f838bfaca5c7 draft test C
349 | o 2:f838bfaca5c7 draft test C
350 |/
350 |/
351 o 1:27547f69f254 draft test B
351 o 1:27547f69f254 draft test B
352 |
352 |
353 o 0:4a2df7238c3b draft test A
353 o 0:4a2df7238c3b draft test A
354
354
355 Removed heads are reported during transfer and properly accounted for in
355 Removed heads are reported during transfer and properly accounted for in
356 pullop.cgresult
356 pullop.cgresult
357
357
358 $ cd ../clone
358 $ cd ../clone
359 $ hg pull
359 $ hg pull
360 pulling from $TESTTMP/repo
360 pulling from $TESTTMP/repo
361 searching for changes
361 searching for changes
362 remote: changegroup1
362 remote: changegroup1
363 adding changesets
363 adding changesets
364 adding manifests
364 adding manifests
365 adding file changes
365 adding file changes
366 pretxnchangegroup hook: HG_HOOKNAME=pretxnchangegroup
366 pretxnchangegroup hook: HG_HOOKNAME=pretxnchangegroup
367 HG_HOOKTYPE=pretxnchangegroup
367 HG_HOOKTYPE=pretxnchangegroup
368 HG_NODE=71bd7b46de72e69a32455bf88d04757d542e6cf4
368 HG_NODE=71bd7b46de72e69a32455bf88d04757d542e6cf4
369 HG_NODE_LAST=71bd7b46de72e69a32455bf88d04757d542e6cf4
369 HG_NODE_LAST=71bd7b46de72e69a32455bf88d04757d542e6cf4
370 HG_PENDING=$TESTTMP/clone
370 HG_PENDING=$TESTTMP/clone
371 HG_SOURCE=pull
371 HG_SOURCE=pull
372 HG_TXNID=TXN:$ID$
372 HG_TXNID=TXN:$ID$
373 HG_TXNNAME=pull
373 HG_TXNNAME=pull
374 file:/*/$TESTTMP/repo (glob)
374 file:/*/$TESTTMP/repo (glob)
375 HG_URL=file:$TESTTMP/repo
375 HG_URL=file:$TESTTMP/repo
376
376
377 remote: changegroup2
377 remote: changegroup2
378 adding changesets
378 adding changesets
379 adding manifests
379 adding manifests
380 adding file changes
380 adding file changes
381 pretxnchangegroup hook: HG_HOOKNAME=pretxnchangegroup
381 pretxnchangegroup hook: HG_HOOKNAME=pretxnchangegroup
382 HG_HOOKTYPE=pretxnchangegroup
382 HG_HOOKTYPE=pretxnchangegroup
383 HG_NODE=9d18e5bd9ab09337802595d49f1dad0c98df4d84
383 HG_NODE=9d18e5bd9ab09337802595d49f1dad0c98df4d84
384 HG_NODE_LAST=9d18e5bd9ab09337802595d49f1dad0c98df4d84
384 HG_NODE_LAST=9d18e5bd9ab09337802595d49f1dad0c98df4d84
385 HG_PENDING=$TESTTMP/clone
385 HG_PENDING=$TESTTMP/clone
386 HG_PHASES_MOVED=1
386 HG_PHASES_MOVED=1
387 HG_SOURCE=pull
387 HG_SOURCE=pull
388 HG_TXNID=TXN:$ID$
388 HG_TXNID=TXN:$ID$
389 HG_TXNNAME=pull
389 HG_TXNNAME=pull
390 file:/*/$TESTTMP/repo (glob)
390 file:/*/$TESTTMP/repo (glob)
391 HG_URL=file:$TESTTMP/repo
391 HG_URL=file:$TESTTMP/repo
392
392
393 added 2 changesets with 1 changes to 1 files (-1 heads)
393 added 2 changesets with 1 changes to 1 files (-1 heads)
394 new changesets 71bd7b46de72:9d18e5bd9ab0
394 new changesets 71bd7b46de72:9d18e5bd9ab0
395 changegroup hook: HG_HOOKNAME=changegroup
395 changegroup hook: HG_HOOKNAME=changegroup
396 HG_HOOKTYPE=changegroup
396 HG_HOOKTYPE=changegroup
397 HG_NODE=71bd7b46de72e69a32455bf88d04757d542e6cf4
397 HG_NODE=71bd7b46de72e69a32455bf88d04757d542e6cf4
398 HG_NODE_LAST=71bd7b46de72e69a32455bf88d04757d542e6cf4
398 HG_NODE_LAST=71bd7b46de72e69a32455bf88d04757d542e6cf4
399 HG_SOURCE=pull
399 HG_SOURCE=pull
400 HG_TXNID=TXN:$ID$
400 HG_TXNID=TXN:$ID$
401 HG_TXNNAME=pull
401 HG_TXNNAME=pull
402 file:/*/$TESTTMP/repo (glob)
402 file:/*/$TESTTMP/repo (glob)
403 HG_URL=file:$TESTTMP/repo
403 HG_URL=file:$TESTTMP/repo
404
404
405 incoming hook: HG_HOOKNAME=incoming
405 incoming hook: HG_HOOKNAME=incoming
406 HG_HOOKTYPE=incoming
406 HG_HOOKTYPE=incoming
407 HG_NODE=71bd7b46de72e69a32455bf88d04757d542e6cf4
407 HG_NODE=71bd7b46de72e69a32455bf88d04757d542e6cf4
408 HG_SOURCE=pull
408 HG_SOURCE=pull
409 HG_TXNID=TXN:$ID$
409 HG_TXNID=TXN:$ID$
410 HG_TXNNAME=pull
410 HG_TXNNAME=pull
411 file:/*/$TESTTMP/repo (glob)
411 file:/*/$TESTTMP/repo (glob)
412 HG_URL=file:$TESTTMP/repo
412 HG_URL=file:$TESTTMP/repo
413
413
414 changegroup hook: HG_HOOKNAME=changegroup
414 changegroup hook: HG_HOOKNAME=changegroup
415 HG_HOOKTYPE=changegroup
415 HG_HOOKTYPE=changegroup
416 HG_NODE=9d18e5bd9ab09337802595d49f1dad0c98df4d84
416 HG_NODE=9d18e5bd9ab09337802595d49f1dad0c98df4d84
417 HG_NODE_LAST=9d18e5bd9ab09337802595d49f1dad0c98df4d84
417 HG_NODE_LAST=9d18e5bd9ab09337802595d49f1dad0c98df4d84
418 HG_PHASES_MOVED=1
418 HG_PHASES_MOVED=1
419 HG_SOURCE=pull
419 HG_SOURCE=pull
420 HG_TXNID=TXN:$ID$
420 HG_TXNID=TXN:$ID$
421 HG_TXNNAME=pull
421 HG_TXNNAME=pull
422 file:/*/$TESTTMP/repo (glob)
422 file:/*/$TESTTMP/repo (glob)
423 HG_URL=file:$TESTTMP/repo
423 HG_URL=file:$TESTTMP/repo
424
424
425 incoming hook: HG_HOOKNAME=incoming
425 incoming hook: HG_HOOKNAME=incoming
426 HG_HOOKTYPE=incoming
426 HG_HOOKTYPE=incoming
427 HG_NODE=9d18e5bd9ab09337802595d49f1dad0c98df4d84
427 HG_NODE=9d18e5bd9ab09337802595d49f1dad0c98df4d84
428 HG_PHASES_MOVED=1
428 HG_PHASES_MOVED=1
429 HG_SOURCE=pull
429 HG_SOURCE=pull
430 HG_TXNID=TXN:$ID$
430 HG_TXNID=TXN:$ID$
431 HG_TXNNAME=pull
431 HG_TXNNAME=pull
432 file:/*/$TESTTMP/repo (glob)
432 file:/*/$TESTTMP/repo (glob)
433 HG_URL=file:$TESTTMP/repo
433 HG_URL=file:$TESTTMP/repo
434
434
435 pullop.cgresult is -2
435 pullop.cgresult is -2
436 (run 'hg update' to get a working copy)
436 (run 'hg update' to get a working copy)
437 $ hg log -G
437 $ hg log -G
438 o 9:9d18e5bd9ab0 public test H
438 o 9:9d18e5bd9ab0 public test H
439 |
439 |
440 o 8:71bd7b46de72 public test Merge
440 o 8:71bd7b46de72 public test Merge
441 |\
441 |\
442 | o 7:5cd59d311f65 public test H
442 | o 7:5cd59d311f65 public test H
443 | |
443 | |
444 o | 6:1d14c3ce6ac0 public test G
444 o | 6:1d14c3ce6ac0 public test G
445 | |
445 | |
446 | | o 5:7f219660301f public test F
446 | | o 5:7f219660301f public test F
447 | | |
447 | | |
448 +---o 4:8a5212ebc852 public test E
448 +---o 4:8a5212ebc852 public test E
449 | |
449 | |
450 | o 3:b3325c91a4d9 public test D
450 | o 3:b3325c91a4d9 public test D
451 | |
451 | |
452 | @ 2:f838bfaca5c7 public test C
452 | @ 2:f838bfaca5c7 public test C
453 |/
453 |/
454 o 1:27547f69f254 public test B
454 o 1:27547f69f254 public test B
455 |
455 |
456 o 0:4a2df7238c3b public test A
456 o 0:4a2df7238c3b public test A
457
457
458
459 Test that "split" from inline content works fine (cf issue6811)
460 ===============================================================
461
462 setup
463 -----
464
465 (create a compression free version where the split is easier to trigger)
466
467 $ cat >> $HGRCPATH << EOF
468 > [format]
469 > revlog-compression=none
470 > use-persistent-nodemap=no
471 > EOF
472
473 $ cd ..
474 $ hg clone --pull repo repo-test-split --quiet
475 pullop.cgresult is 2
476 $ cat > repo-test-split/.hg/hgrc << EOF
477 > [extensions]
478 > bundle2=$TESTTMP/bundle2.py
479 > EOF
480 $ hg clone --pull repo-test-split clone-test-split --quiet
481 pullop.cgresult is 2
482 $ cd repo-test-split
483 $ cat > .hg/hgrc << EOF
484 > [extensions]
485 > bundle2=$TESTTMP/bundle2.py
486 > EOF
487
488
489 IMPORTANT: must be a non-split revlog with only a .i
490 $ ls -1 .hg/store/00manifest.*
491 .hg/store/00manifest.i
492 $ ls -1 .hg/store/data/_a.*
493 .hg/store/data/_a.i
494
495 $ $TESTDIR/seq.py 100000 > A
496 $ mkdir foo
497 $ cd foo
498 $ touch `$TESTDIR/seq.py 10000`
499 $ cd ..
500 $ hg add -q foo
501 $ hg commit -m 'split the manifest and one filelog'
502
503
504 IMPORTANT: now the revlogs must be split
505 $ ls -1 .hg/store/00manifest.*
506 .hg/store/00manifest.d
507 .hg/store/00manifest.i
508 $ ls -1 .hg/store/data/_a.*
509 .hg/store/data/_a.d
510 .hg/store/data/_a.i
511
512 Add an extra commit on top of that
513
514 $ echo foo >> A
515 $ hg commit -m 'one extra commit'
516
517
518 Actual testing
519 --------------
520
521 $ cd ../clone-test-split
522
523 We now pull this in the clone the split should be in one changegroup, the update in another one
524
525 $ hg pull
526 pulling from $TESTTMP/repo-test-split
527 searching for changes
528 remote: changegroup1
529 adding changesets
530 adding manifests
531 adding file changes
532 remote: changegroup2
533 adding changesets
534 adding manifests
535 adding file changes
536 added 2 changesets with 10002 changes to 10002 files
537 new changesets 5e5bf9c91085:900b170f70d0
538 pullop.cgresult is 1
539 (run 'hg update' to get a working copy)
540
541 IMPORTANT: now the revlogs must be split
542 $ ls -1 .hg/store/00manifest.*
543 .hg/store/00manifest.d
544 .hg/store/00manifest.i
545 $ ls -1 .hg/store/data/_a.*
546 .hg/store/data/_a.d
547 .hg/store/data/_a.i
548
549 manifest should work
550
551 $ hg files -r tip | wc -l
552 \s*10007 (re)
553
554 file content should work
555
556 $ hg cat -r tip A | wc -l
557 \s*100001 (re)
General Comments 0
You need to be logged in to leave comments. Login now