|
1 |
|
2 Create an ondisk bundlestore in .hg/scratchbranches |
|
3 $ . "$TESTDIR/library-infinitepush.sh" |
|
4 $ cp $HGRCPATH $TESTTMP/defaulthgrc |
|
5 $ setupcommon |
|
6 $ mkcommit() { |
|
7 > echo "$1" > "$1" |
|
8 > hg add "$1" |
|
9 > hg ci -m "$1" |
|
10 > } |
|
11 $ hg init repo |
|
12 $ cd repo |
|
13 |
|
14 Check that we can send a scratch on the server and it does not show there in |
|
15 the history but is stored on disk |
|
16 $ setupserver |
|
17 $ cd .. |
|
18 $ hg clone ssh://user@dummy/repo client -q |
|
19 $ cd client |
|
20 $ mkcommit initialcommit |
|
21 $ hg push -r . --create |
|
22 pushing to ssh://user@dummy/repo |
|
23 searching for changes |
|
24 remote: adding changesets |
|
25 remote: adding manifests |
|
26 remote: adding file changes |
|
27 remote: added 1 changesets with 1 changes to 1 files |
|
28 $ mkcommit scratchcommit |
|
29 $ hg push -r . --to scratch/mybranch --create |
|
30 pushing to ssh://user@dummy/repo |
|
31 searching for changes |
|
32 remote: pushing 1 commit: |
|
33 remote: 20759b6926ce scratchcommit |
|
34 $ hg log -G |
|
35 @ changeset: 1:20759b6926ce |
|
36 | bookmark: scratch/mybranch |
|
37 | tag: tip |
|
38 | user: test |
|
39 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
40 | summary: scratchcommit |
|
41 | |
|
42 o changeset: 0:67145f466344 |
|
43 user: test |
|
44 date: Thu Jan 01 00:00:00 1970 +0000 |
|
45 summary: initialcommit |
|
46 |
|
47 $ hg log -G -R ../repo |
|
48 o changeset: 0:67145f466344 |
|
49 tag: tip |
|
50 user: test |
|
51 date: Thu Jan 01 00:00:00 1970 +0000 |
|
52 summary: initialcommit |
|
53 |
|
54 $ find ../repo/.hg/scratchbranches | sort |
|
55 ../repo/.hg/scratchbranches |
|
56 ../repo/.hg/scratchbranches/filebundlestore |
|
57 ../repo/.hg/scratchbranches/filebundlestore/b9 |
|
58 ../repo/.hg/scratchbranches/filebundlestore/b9/e1 |
|
59 ../repo/.hg/scratchbranches/filebundlestore/b9/e1/b9e1ee5f93fb6d7c42496fc176c09839639dd9cc |
|
60 ../repo/.hg/scratchbranches/index |
|
61 ../repo/.hg/scratchbranches/index/bookmarkmap |
|
62 ../repo/.hg/scratchbranches/index/bookmarkmap/scratch |
|
63 ../repo/.hg/scratchbranches/index/bookmarkmap/scratch/mybranch |
|
64 ../repo/.hg/scratchbranches/index/nodemap |
|
65 ../repo/.hg/scratchbranches/index/nodemap/20759b6926ce827d5a8c73eb1fa9726d6f7defb2 |
|
66 |
|
67 From another client we can get the scratchbranch if we ask for it explicitely |
|
68 |
|
69 $ cd .. |
|
70 $ hg clone ssh://user@dummy/repo client2 -q |
|
71 $ cd client2 |
|
72 $ hg pull -B scratch/mybranch --traceback |
|
73 pulling from ssh://user@dummy/repo |
|
74 searching for changes |
|
75 adding changesets |
|
76 adding manifests |
|
77 adding file changes |
|
78 added 1 changesets with 1 changes to 1 files |
|
79 new changesets 20759b6926ce |
|
80 (run 'hg update' to get a working copy) |
|
81 $ hg log -G |
|
82 o changeset: 1:20759b6926ce |
|
83 | bookmark: scratch/mybranch |
|
84 | tag: tip |
|
85 | user: test |
|
86 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
87 | summary: scratchcommit |
|
88 | |
|
89 @ changeset: 0:67145f466344 |
|
90 user: test |
|
91 date: Thu Jan 01 00:00:00 1970 +0000 |
|
92 summary: initialcommit |
|
93 |
|
94 $ cd .. |
|
95 |
|
96 Push to non-scratch bookmark |
|
97 |
|
98 $ cd client |
|
99 $ hg up 0 |
|
100 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
|
101 $ mkcommit newcommit |
|
102 created new head |
|
103 $ hg push -r . |
|
104 pushing to ssh://user@dummy/repo |
|
105 searching for changes |
|
106 remote: adding changesets |
|
107 remote: adding manifests |
|
108 remote: adding file changes |
|
109 remote: added 1 changesets with 1 changes to 1 files |
|
110 $ hg log -G -T '{desc} {phase} {bookmarks}' |
|
111 @ newcommit public |
|
112 | |
|
113 | o scratchcommit draft scratch/mybranch |
|
114 |/ |
|
115 o initialcommit public |
|
116 |
|
117 |
|
118 Push to scratch branch |
|
119 $ cd ../client2 |
|
120 $ hg up -q scratch/mybranch |
|
121 $ mkcommit 'new scratch commit' |
|
122 $ hg push -r . --to scratch/mybranch |
|
123 pushing to ssh://user@dummy/repo |
|
124 searching for changes |
|
125 remote: pushing 2 commits: |
|
126 remote: 20759b6926ce scratchcommit |
|
127 remote: 1de1d7d92f89 new scratch commit |
|
128 $ hg log -G -T '{desc} {phase} {bookmarks}' |
|
129 @ new scratch commit draft scratch/mybranch |
|
130 | |
|
131 o scratchcommit draft |
|
132 | |
|
133 o initialcommit public |
|
134 |
|
135 $ scratchnodes |
|
136 1de1d7d92f8965260391d0513fe8a8d5973d3042 bed63daed3beba97fff2e819a148cf415c217a85 |
|
137 20759b6926ce827d5a8c73eb1fa9726d6f7defb2 bed63daed3beba97fff2e819a148cf415c217a85 |
|
138 |
|
139 $ scratchbookmarks |
|
140 scratch/mybranch 1de1d7d92f8965260391d0513fe8a8d5973d3042 |
|
141 |
|
142 Push scratch bookmark with no new revs |
|
143 $ hg push -r . --to scratch/anotherbranch --create |
|
144 pushing to ssh://user@dummy/repo |
|
145 searching for changes |
|
146 remote: pushing 2 commits: |
|
147 remote: 20759b6926ce scratchcommit |
|
148 remote: 1de1d7d92f89 new scratch commit |
|
149 $ hg log -G -T '{desc} {phase} {bookmarks}' |
|
150 @ new scratch commit draft scratch/anotherbranch scratch/mybranch |
|
151 | |
|
152 o scratchcommit draft |
|
153 | |
|
154 o initialcommit public |
|
155 |
|
156 $ scratchbookmarks |
|
157 scratch/anotherbranch 1de1d7d92f8965260391d0513fe8a8d5973d3042 |
|
158 scratch/mybranch 1de1d7d92f8965260391d0513fe8a8d5973d3042 |
|
159 |
|
160 Pull scratch and non-scratch bookmark at the same time |
|
161 |
|
162 $ hg -R ../repo book newbook |
|
163 $ cd ../client |
|
164 $ hg pull -B newbook -B scratch/mybranch --traceback |
|
165 pulling from ssh://user@dummy/repo |
|
166 searching for changes |
|
167 adding changesets |
|
168 adding manifests |
|
169 adding file changes |
|
170 added 1 changesets with 1 changes to 2 files |
|
171 adding remote bookmark newbook |
|
172 new changesets 1de1d7d92f89 |
|
173 (run 'hg update' to get a working copy) |
|
174 $ hg log -G -T '{desc} {phase} {bookmarks}' |
|
175 o new scratch commit draft scratch/mybranch |
|
176 | |
|
177 | @ newcommit public |
|
178 | | |
|
179 o | scratchcommit draft |
|
180 |/ |
|
181 o initialcommit public |
|
182 |
|
183 |
|
184 Push scratch revision without bookmark with --bundle-store |
|
185 |
|
186 $ hg up -q tip |
|
187 $ mkcommit scratchcommitnobook |
|
188 $ hg log -G -T '{desc} {phase} {bookmarks}' |
|
189 @ scratchcommitnobook draft |
|
190 | |
|
191 o new scratch commit draft scratch/mybranch |
|
192 | |
|
193 | o newcommit public |
|
194 | | |
|
195 o | scratchcommit draft |
|
196 |/ |
|
197 o initialcommit public |
|
198 |
|
199 $ hg push -r . --bundle-store |
|
200 pushing to ssh://user@dummy/repo |
|
201 searching for changes |
|
202 remote: pushing 3 commits: |
|
203 remote: 20759b6926ce scratchcommit |
|
204 remote: 1de1d7d92f89 new scratch commit |
|
205 remote: 2b5d271c7e0d scratchcommitnobook |
|
206 $ hg -R ../repo log -G -T '{desc} {phase}' |
|
207 o newcommit public |
|
208 | |
|
209 o initialcommit public |
|
210 |
|
211 |
|
212 $ scratchnodes |
|
213 1de1d7d92f8965260391d0513fe8a8d5973d3042 66fa08ff107451320512817bed42b7f467a1bec3 |
|
214 20759b6926ce827d5a8c73eb1fa9726d6f7defb2 66fa08ff107451320512817bed42b7f467a1bec3 |
|
215 2b5d271c7e0d25d811359a314d413ebcc75c9524 66fa08ff107451320512817bed42b7f467a1bec3 |
|
216 |
|
217 Test with pushrebase |
|
218 $ mkcommit scratchcommitwithpushrebase |
|
219 $ hg push -r . --to scratch/mybranch |
|
220 pushing to ssh://user@dummy/repo |
|
221 searching for changes |
|
222 remote: pushing 4 commits: |
|
223 remote: 20759b6926ce scratchcommit |
|
224 remote: 1de1d7d92f89 new scratch commit |
|
225 remote: 2b5d271c7e0d scratchcommitnobook |
|
226 remote: d8c4f54ab678 scratchcommitwithpushrebase |
|
227 $ hg -R ../repo log -G -T '{desc} {phase}' |
|
228 o newcommit public |
|
229 | |
|
230 o initialcommit public |
|
231 |
|
232 $ scratchnodes |
|
233 1de1d7d92f8965260391d0513fe8a8d5973d3042 e3cb2ac50f9e1e6a5ead3217fc21236c84af4397 |
|
234 20759b6926ce827d5a8c73eb1fa9726d6f7defb2 e3cb2ac50f9e1e6a5ead3217fc21236c84af4397 |
|
235 2b5d271c7e0d25d811359a314d413ebcc75c9524 e3cb2ac50f9e1e6a5ead3217fc21236c84af4397 |
|
236 d8c4f54ab678fd67cb90bb3f272a2dc6513a59a7 e3cb2ac50f9e1e6a5ead3217fc21236c84af4397 |
|
237 |
|
238 Change the order of pushrebase and infinitepush |
|
239 $ mkcommit scratchcommitwithpushrebase2 |
|
240 $ hg push -r . --to scratch/mybranch |
|
241 pushing to ssh://user@dummy/repo |
|
242 searching for changes |
|
243 remote: pushing 5 commits: |
|
244 remote: 20759b6926ce scratchcommit |
|
245 remote: 1de1d7d92f89 new scratch commit |
|
246 remote: 2b5d271c7e0d scratchcommitnobook |
|
247 remote: d8c4f54ab678 scratchcommitwithpushrebase |
|
248 remote: 6c10d49fe927 scratchcommitwithpushrebase2 |
|
249 $ hg -R ../repo log -G -T '{desc} {phase}' |
|
250 o newcommit public |
|
251 | |
|
252 o initialcommit public |
|
253 |
|
254 $ scratchnodes |
|
255 1de1d7d92f8965260391d0513fe8a8d5973d3042 cd0586065eaf8b483698518f5fc32531e36fd8e0 |
|
256 20759b6926ce827d5a8c73eb1fa9726d6f7defb2 cd0586065eaf8b483698518f5fc32531e36fd8e0 |
|
257 2b5d271c7e0d25d811359a314d413ebcc75c9524 cd0586065eaf8b483698518f5fc32531e36fd8e0 |
|
258 6c10d49fe92751666c40263f96721b918170d3da cd0586065eaf8b483698518f5fc32531e36fd8e0 |
|
259 d8c4f54ab678fd67cb90bb3f272a2dc6513a59a7 cd0586065eaf8b483698518f5fc32531e36fd8e0 |
|
260 |
|
261 Non-fastforward scratch bookmark push |
|
262 |
|
263 $ hg log -GT "{rev}:{node} {desc}\n" |
|
264 @ 6:6c10d49fe92751666c40263f96721b918170d3da scratchcommitwithpushrebase2 |
|
265 | |
|
266 o 5:d8c4f54ab678fd67cb90bb3f272a2dc6513a59a7 scratchcommitwithpushrebase |
|
267 | |
|
268 o 4:2b5d271c7e0d25d811359a314d413ebcc75c9524 scratchcommitnobook |
|
269 | |
|
270 o 3:1de1d7d92f8965260391d0513fe8a8d5973d3042 new scratch commit |
|
271 | |
|
272 | o 2:91894e11e8255bf41aa5434b7b98e8b2aa2786eb newcommit |
|
273 | | |
|
274 o | 1:20759b6926ce827d5a8c73eb1fa9726d6f7defb2 scratchcommit |
|
275 |/ |
|
276 o 0:67145f4663446a9580364f70034fea6e21293b6f initialcommit |
|
277 |
|
278 $ hg up 6c10d49fe927 |
|
279 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
280 $ echo 1 > amend |
|
281 $ hg add amend |
|
282 $ hg ci --amend -m 'scratch amended commit' |
|
283 saved backup bundle to $TESTTMP/client/.hg/strip-backup/6c10d49fe927-c99ffec5-amend.hg (glob) |
|
284 $ hg log -G -T '{desc} {phase} {bookmarks}' |
|
285 @ scratch amended commit draft scratch/mybranch |
|
286 | |
|
287 o scratchcommitwithpushrebase draft |
|
288 | |
|
289 o scratchcommitnobook draft |
|
290 | |
|
291 o new scratch commit draft |
|
292 | |
|
293 | o newcommit public |
|
294 | | |
|
295 o | scratchcommit draft |
|
296 |/ |
|
297 o initialcommit public |
|
298 |
|
299 |
|
300 $ scratchbookmarks |
|
301 scratch/anotherbranch 1de1d7d92f8965260391d0513fe8a8d5973d3042 |
|
302 scratch/mybranch 6c10d49fe92751666c40263f96721b918170d3da |
|
303 $ hg push -r . --to scratch/mybranch |
|
304 pushing to ssh://user@dummy/repo |
|
305 searching for changes |
|
306 remote: non-forward push |
|
307 remote: (use --non-forward-move to override) |
|
308 abort: push failed on remote |
|
309 [255] |
|
310 |
|
311 $ hg push -r . --to scratch/mybranch --non-forward-move |
|
312 pushing to ssh://user@dummy/repo |
|
313 searching for changes |
|
314 remote: pushing 5 commits: |
|
315 remote: 20759b6926ce scratchcommit |
|
316 remote: 1de1d7d92f89 new scratch commit |
|
317 remote: 2b5d271c7e0d scratchcommitnobook |
|
318 remote: d8c4f54ab678 scratchcommitwithpushrebase |
|
319 remote: 8872775dd97a scratch amended commit |
|
320 $ scratchbookmarks |
|
321 scratch/anotherbranch 1de1d7d92f8965260391d0513fe8a8d5973d3042 |
|
322 scratch/mybranch 8872775dd97a750e1533dc1fbbca665644b32547 |
|
323 $ hg log -G -T '{desc} {phase} {bookmarks}' |
|
324 @ scratch amended commit draft scratch/mybranch |
|
325 | |
|
326 o scratchcommitwithpushrebase draft |
|
327 | |
|
328 o scratchcommitnobook draft |
|
329 | |
|
330 o new scratch commit draft |
|
331 | |
|
332 | o newcommit public |
|
333 | | |
|
334 o | scratchcommit draft |
|
335 |/ |
|
336 o initialcommit public |
|
337 |
|
338 Check that push path is not ignored. Add new path to the hgrc |
|
339 $ cat >> .hg/hgrc << EOF |
|
340 > [paths] |
|
341 > peer=ssh://user@dummy/client2 |
|
342 > EOF |
|
343 |
|
344 Checkout last non-scrath commit |
|
345 $ hg up 91894e11e8255 |
|
346 1 files updated, 0 files merged, 6 files removed, 0 files unresolved |
|
347 $ mkcommit peercommit |
|
348 Use --force because this push creates new head |
|
349 $ hg push peer -r . -f |
|
350 pushing to ssh://user@dummy/client2 |
|
351 searching for changes |
|
352 remote: adding changesets |
|
353 remote: adding manifests |
|
354 remote: adding file changes |
|
355 remote: added 2 changesets with 2 changes to 2 files (+1 heads) |
|
356 $ hg -R ../repo log -G -T '{desc} {phase} {bookmarks}' |
|
357 o newcommit public |
|
358 | |
|
359 o initialcommit public |
|
360 |
|
361 $ hg -R ../client2 log -G -T '{desc} {phase} {bookmarks}' |
|
362 o peercommit public |
|
363 | |
|
364 o newcommit public |
|
365 | |
|
366 | @ new scratch commit draft scratch/anotherbranch scratch/mybranch |
|
367 | | |
|
368 | o scratchcommit draft |
|
369 |/ |
|
370 o initialcommit public |
|
371 |
|
372 $ hg book --list-remote scratch/* |
|
373 scratch/anotherbranch 1de1d7d92f8965260391d0513fe8a8d5973d3042 |
|
374 scratch/mybranch 8872775dd97a750e1533dc1fbbca665644b32547 |
|
375 $ hg book --list-remote |
|
376 abort: --list-remote requires a bookmark pattern |
|
377 (use "hg book" to get a list of your local bookmarks) |
|
378 [255] |
|
379 $ hg book --config infinitepush.defaultremotepatterns=scratch/another* --list-remote |
|
380 abort: --list-remote requires a bookmark pattern |
|
381 (use "hg book" to get a list of your local bookmarks) |
|
382 [255] |
|
383 $ hg book --list-remote scratch/my |
|
384 $ hg book --list-remote scratch/my* |
|
385 scratch/mybranch 8872775dd97a750e1533dc1fbbca665644b32547 |
|
386 $ hg book --list-remote scratch/my* -T json |
|
387 [ |
|
388 { |
|
389 "bookmark": "scratch/mybranch", |
|
390 "node": "8872775dd97a750e1533dc1fbbca665644b32547" |
|
391 } |
|
392 ] |
|
393 $ cd ../repo |
|
394 $ hg book scratch/serversidebook |
|
395 $ hg book serversidebook |
|
396 $ cd ../client |
|
397 $ hg book --list-remote scratch/* -T json |
|
398 [ |
|
399 { |
|
400 "bookmark": "scratch/anotherbranch", |
|
401 "node": "1de1d7d92f8965260391d0513fe8a8d5973d3042" |
|
402 }, |
|
403 { |
|
404 "bookmark": "scratch/mybranch", |
|
405 "node": "8872775dd97a750e1533dc1fbbca665644b32547" |
|
406 }, |
|
407 { |
|
408 "bookmark": "scratch/serversidebook", |
|
409 "node": "0000000000000000000000000000000000000000" |
|
410 } |
|
411 ] |
|
412 |
|
413 Push to svn server should fail |
|
414 $ hg push svn+ssh://svn.vip.facebook.com/svnroot/tfb/trunk/www -r . --to scratch/serversidebook |
|
415 abort: infinite push does not work with svn repo |
|
416 (did you forget to `hg push default`?) |
|
417 [255] |