##// END OF EJS Templates
py3: suppress write() result and close file in test-bookmarks-pushpull.t
Yuya Nishihara -
r38625:15622e72 default
parent child Browse files
Show More
@@ -1,536 +1,537
1 1 test-abort-checkin.t
2 2 test-add.t
3 3 test-addremove-similar.t
4 4 test-addremove.t
5 5 test-alias.t
6 6 test-amend-subrepo.t
7 7 test-amend.t
8 8 test-ancestor.py
9 9 test-annotate.py
10 10 test-annotate.t
11 11 test-archive-symlinks.t
12 12 test-atomictempfile.py
13 13 test-audit-path.t
14 14 test-audit-subrepo.t
15 15 test-automv.t
16 16 test-backout.t
17 17 test-backwards-remove.t
18 18 test-bad-pull.t
19 19 test-basic.t
20 20 test-bheads.t
21 21 test-bisect.t
22 22 test-bisect2.t
23 23 test-bisect3.t
24 24 test-blackbox.t
25 25 test-bookmarks-current.t
26 26 test-bookmarks-merge.t
27 test-bookmarks-pushpull.t
27 28 test-bookmarks-rebase.t
28 29 test-bookmarks-strip.t
29 30 test-bookmarks.t
30 31 test-branch-change.t
31 32 test-branch-option.t
32 33 test-branch-tag-confict.t
33 34 test-branches.t
34 35 test-bundle-phases.t
35 36 test-bundle-r.t
36 37 test-bundle-type.t
37 38 test-bundle-vs-outgoing.t
38 39 test-bundle.t
39 40 test-bundle2-exchange.t
40 41 test-bundle2-multiple-changegroups.t
41 42 test-bundle2-pushback.t
42 43 test-cappedreader.py
43 44 test-casecollision.t
44 45 test-cat.t
45 46 test-cbor.py
46 47 test-censor.t
47 48 test-changelog-exec.t
48 49 test-check-commit.t
49 50 test-check-execute.t
50 51 test-check-interfaces.py
51 52 test-check-module-imports.t
52 53 test-check-pyflakes.t
53 54 test-check-pylint.t
54 55 test-check-shbang.t
55 56 test-children.t
56 57 test-clone-cgi.t
57 58 test-clone-pull-corruption.t
58 59 test-clone-r.t
59 60 test-clone-update-order.t
60 61 test-clonebundles.t
61 62 test-commit-amend.t
62 63 test-commit-interactive.t
63 64 test-commit-multiple.t
64 65 test-commit-unresolved.t
65 66 test-commit.t
66 67 test-committer.t
67 68 test-completion.t
68 69 test-config-env.py
69 70 test-config.t
70 71 test-conflict.t
71 72 test-confused-revert.t
72 73 test-context.py
73 74 test-contrib-check-code.t
74 75 test-contrib-check-commit.t
75 76 test-convert-authormap.t
76 77 test-convert-clonebranches.t
77 78 test-convert-cvs-branch.t
78 79 test-convert-cvs-detectmerge.t
79 80 test-convert-cvs-synthetic.t
80 81 test-convert-cvs.t
81 82 test-convert-cvsnt-mergepoints.t
82 83 test-convert-datesort.t
83 84 test-convert-filemap.t
84 85 test-convert-hg-sink.t
85 86 test-convert-hg-source.t
86 87 test-convert-hg-startrev.t
87 88 test-convert-splicemap.t
88 89 test-convert-tagsbranch-topology.t
89 90 test-copy-move-merge.t
90 91 test-copy.t
91 92 test-copytrace-heuristics.t
92 93 test-debugbuilddag.t
93 94 test-debugbundle.t
94 95 test-debugextensions.t
95 96 test-debugindexdot.t
96 97 test-debugrename.t
97 98 test-default-push.t
98 99 test-diff-antipatience.t
99 100 test-diff-binary-file.t
100 101 test-diff-change.t
101 102 test-diff-copy-depth.t
102 103 test-diff-hashes.t
103 104 test-diff-ignore-whitespace.t
104 105 test-diff-indent-heuristic.t
105 106 test-diff-issue2761.t
106 107 test-diff-newlines.t
107 108 test-diff-reverse.t
108 109 test-diff-subdir.t
109 110 test-diff-unified.t
110 111 test-diff-upgrade.t
111 112 test-diffdir.t
112 113 test-diffstat.t
113 114 test-directaccess.t
114 115 test-dirstate-backup.t
115 116 test-dirstate-nonnormalset.t
116 117 test-dirstate.t
117 118 test-dispatch.py
118 119 test-doctest.py
119 120 test-double-merge.t
120 121 test-drawdag.t
121 122 test-duplicateoptions.py
122 123 test-editor-filename.t
123 124 test-empty-dir.t
124 125 test-empty-file.t
125 126 test-empty-group.t
126 127 test-empty.t
127 128 test-encode.t
128 129 test-encoding-func.py
129 130 test-encoding.t
130 131 test-eol-add.t
131 132 test-eol-clone.t
132 133 test-eol-hook.t
133 134 test-eol-patch.t
134 135 test-eol-tag.t
135 136 test-eol-update.t
136 137 test-eol.t
137 138 test-eolfilename.t
138 139 test-excessive-merge.t
139 140 test-exchange-obsmarkers-case-A1.t
140 141 test-exchange-obsmarkers-case-A2.t
141 142 test-exchange-obsmarkers-case-A3.t
142 143 test-exchange-obsmarkers-case-A4.t
143 144 test-exchange-obsmarkers-case-A5.t
144 145 test-exchange-obsmarkers-case-A6.t
145 146 test-exchange-obsmarkers-case-A7.t
146 147 test-exchange-obsmarkers-case-B1.t
147 148 test-exchange-obsmarkers-case-B2.t
148 149 test-exchange-obsmarkers-case-B3.t
149 150 test-exchange-obsmarkers-case-B4.t
150 151 test-exchange-obsmarkers-case-B5.t
151 152 test-exchange-obsmarkers-case-B6.t
152 153 test-exchange-obsmarkers-case-B7.t
153 154 test-exchange-obsmarkers-case-C1.t
154 155 test-exchange-obsmarkers-case-C2.t
155 156 test-exchange-obsmarkers-case-C3.t
156 157 test-exchange-obsmarkers-case-C4.t
157 158 test-exchange-obsmarkers-case-D1.t
158 159 test-exchange-obsmarkers-case-D2.t
159 160 test-exchange-obsmarkers-case-D3.t
160 161 test-exchange-obsmarkers-case-D4.t
161 162 test-execute-bit.t
162 163 test-export.t
163 164 test-extdata.t
164 165 test-extdiff.t
165 166 test-extensions-afterloaded.t
166 167 test-extensions-wrapfunction.py
167 168 test-extra-filelog-entry.t
168 169 test-fetch.t
169 170 test-filebranch.t
170 171 test-filecache.py
171 172 test-filelog.py
172 173 test-fileset-generated.t
173 174 test-fileset.t
174 175 test-fix-topology.t
175 176 test-flags.t
176 177 test-generaldelta.t
177 178 test-getbundle.t
178 179 test-git-export.t
179 180 test-glog-topological.t
180 181 test-gpg.t
181 182 test-graft.t
182 183 test-hg-parseurl.py
183 184 test-hghave.t
184 185 test-hgignore.t
185 186 test-hgk.t
186 187 test-hgrc.t
187 188 test-hgweb-bundle.t
188 189 test-hgweb-descend-empties.t
189 190 test-hgweb-empty.t
190 191 test-hgweb-removed.t
191 192 test-hgwebdir-paths.py
192 193 test-hgwebdirsym.t
193 194 test-histedit-arguments.t
194 195 test-histedit-base.t
195 196 test-histedit-bookmark-motion.t
196 197 test-histedit-commute.t
197 198 test-histedit-drop.t
198 199 test-histedit-edit.t
199 200 test-histedit-fold-non-commute.t
200 201 test-histedit-fold.t
201 202 test-histedit-no-change.t
202 203 test-histedit-non-commute-abort.t
203 204 test-histedit-non-commute.t
204 205 test-histedit-obsolete.t
205 206 test-histedit-outgoing.t
206 207 test-histedit-templates.t
207 208 test-http-branchmap.t
208 209 test-http-bundle1.t
209 210 test-http-clone-r.t
210 211 test-http.t
211 212 test-hybridencode.py
212 213 test-identify.t
213 214 test-impexp-branch.t
214 215 test-import-bypass.t
215 216 test-import-eol.t
216 217 test-import-merge.t
217 218 test-import-unknown.t
218 219 test-import.t
219 220 test-imports-checker.t
220 221 test-incoming-outgoing.t
221 222 test-inherit-mode.t
222 223 test-init.t
223 224 test-issue1089.t
224 225 test-issue1102.t
225 226 test-issue1175.t
226 227 test-issue1306.t
227 228 test-issue1438.t
228 229 test-issue1502.t
229 230 test-issue1802.t
230 231 test-issue1877.t
231 232 test-issue1993.t
232 233 test-issue2137.t
233 234 test-issue3084.t
234 235 test-issue4074.t
235 236 test-issue522.t
236 237 test-issue586.t
237 238 test-issue612.t
238 239 test-issue619.t
239 240 test-issue660.t
240 241 test-issue672.t
241 242 test-issue842.t
242 243 test-journal-exists.t
243 244 test-journal-share.t
244 245 test-journal.t
245 246 test-known.t
246 247 test-largefiles-cache.t
247 248 test-largefiles-misc.t
248 249 test-largefiles-small-disk.t
249 250 test-largefiles-update.t
250 251 test-largefiles.t
251 252 test-lfs-largefiles.t
252 253 test-lfs-pointer.py
253 254 test-linerange.py
254 255 test-locate.t
255 256 test-lock-badness.t
256 257 test-log-linerange.t
257 258 test-log.t
258 259 test-logexchange.t
259 260 test-lrucachedict.py
260 261 test-mactext.t
261 262 test-mailmap.t
262 263 test-manifest-merging.t
263 264 test-manifest.py
264 265 test-manifest.t
265 266 test-match.py
266 267 test-mdiff.py
267 268 test-merge-changedelete.t
268 269 test-merge-closedheads.t
269 270 test-merge-commit.t
270 271 test-merge-criss-cross.t
271 272 test-merge-default.t
272 273 test-merge-force.t
273 274 test-merge-halt.t
274 275 test-merge-internal-tools-pattern.t
275 276 test-merge-local.t
276 277 test-merge-remove.t
277 278 test-merge-revert.t
278 279 test-merge-revert2.t
279 280 test-merge-subrepos.t
280 281 test-merge-symlinks.t
281 282 test-merge-tools.t
282 283 test-merge-types.t
283 284 test-merge1.t
284 285 test-merge10.t
285 286 test-merge2.t
286 287 test-merge4.t
287 288 test-merge5.t
288 289 test-merge6.t
289 290 test-merge7.t
290 291 test-merge8.t
291 292 test-merge9.t
292 293 test-minifileset.py
293 294 test-minirst.py
294 295 test-mq-git.t
295 296 test-mq-header-date.t
296 297 test-mq-header-from.t
297 298 test-mq-merge.t
298 299 test-mq-pull-from-bundle.t
299 300 test-mq-qclone-http.t
300 301 test-mq-qdelete.t
301 302 test-mq-qdiff.t
302 303 test-mq-qfold.t
303 304 test-mq-qgoto.t
304 305 test-mq-qimport-fail-cleanup.t
305 306 test-mq-qnew.t
306 307 test-mq-qpush-exact.t
307 308 test-mq-qqueue.t
308 309 test-mq-qrefresh-interactive.t
309 310 test-mq-qrefresh-replace-log-message.t
310 311 test-mq-qrefresh.t
311 312 test-mq-qrename.t
312 313 test-mq-qsave.t
313 314 test-mq-safety.t
314 315 test-mq-subrepo.t
315 316 test-mq-symlinks.t
316 317 test-mv-cp-st-diff.t
317 318 test-narrow-archive.t
318 319 test-narrow-clone-no-ellipsis.t
319 320 test-narrow-clone-non-narrow-server.t
320 321 test-narrow-clone-nonlinear.t
321 322 test-narrow-clone.t
322 323 test-narrow-commit.t
323 324 test-narrow-copies.t
324 325 test-narrow-debugcommands.t
325 326 test-narrow-debugrebuilddirstate.t
326 327 test-narrow-exchange-merges.t
327 328 test-narrow-exchange.t
328 329 test-narrow-expanddirstate.t
329 330 test-narrow-merge.t
330 331 test-narrow-patch.t
331 332 test-narrow-patterns.t
332 333 test-narrow-pull.t
333 334 test-narrow-rebase.t
334 335 test-narrow-shallow-merges.t
335 336 test-narrow-shallow.t
336 337 test-narrow-strip.t
337 338 test-narrow-update.t
338 339 test-narrow-widen.t
339 340 test-narrow.t
340 341 test-nested-repo.t
341 342 test-newbranch.t
342 343 test-obshistory.t
343 344 test-obsmarker-template.t
344 345 test-obsmarkers-effectflag.t
345 346 test-obsolete-bundle-strip.t
346 347 test-obsolete-changeset-exchange.t
347 348 test-obsolete-checkheads.t
348 349 test-obsolete-distributed.t
349 350 test-obsolete-divergent.t
350 351 test-obsolete-tag-cache.t
351 352 test-pager.t
352 353 test-parents.t
353 354 test-parseindex2.py
354 355 test-patch-offset.t
355 356 test-patch.t
356 357 test-pathconflicts-merge.t
357 358 test-pathconflicts-update.t
358 359 test-pathencode.py
359 360 test-pending.t
360 361 test-permissions.t
361 362 test-phases.t
362 363 test-pull-branch.t
363 364 test-pull-http.t
364 365 test-pull-permission.t
365 366 test-pull-pull-corruption.t
366 367 test-pull-r.t
367 368 test-pull-update.t
368 369 test-pull.t
369 370 test-purge.t
370 371 test-push-checkheads-partial-C1.t
371 372 test-push-checkheads-partial-C2.t
372 373 test-push-checkheads-partial-C3.t
373 374 test-push-checkheads-partial-C4.t
374 375 test-push-checkheads-pruned-B1.t
375 376 test-push-checkheads-pruned-B2.t
376 377 test-push-checkheads-pruned-B3.t
377 378 test-push-checkheads-pruned-B4.t
378 379 test-push-checkheads-pruned-B5.t
379 380 test-push-checkheads-pruned-B6.t
380 381 test-push-checkheads-pruned-B7.t
381 382 test-push-checkheads-pruned-B8.t
382 383 test-push-checkheads-superceed-A1.t
383 384 test-push-checkheads-superceed-A2.t
384 385 test-push-checkheads-superceed-A3.t
385 386 test-push-checkheads-superceed-A4.t
386 387 test-push-checkheads-superceed-A5.t
387 388 test-push-checkheads-superceed-A6.t
388 389 test-push-checkheads-superceed-A7.t
389 390 test-push-checkheads-superceed-A8.t
390 391 test-push-checkheads-unpushed-D1.t
391 392 test-push-checkheads-unpushed-D2.t
392 393 test-push-checkheads-unpushed-D3.t
393 394 test-push-checkheads-unpushed-D4.t
394 395 test-push-checkheads-unpushed-D5.t
395 396 test-push-checkheads-unpushed-D6.t
396 397 test-push-checkheads-unpushed-D7.t
397 398 test-push-http.t
398 399 test-push-warn.t
399 400 test-push.t
400 401 test-pushvars.t
401 402 test-qrecord.t
402 403 test-rebase-abort.t
403 404 test-rebase-base-flag.t
404 405 test-rebase-bookmarks.t
405 406 test-rebase-brute-force.t
406 407 test-rebase-cache.t
407 408 test-rebase-check-restore.t
408 409 test-rebase-collapse.t
409 410 test-rebase-conflicts.t
410 411 test-rebase-dest.t
411 412 test-rebase-detach.t
412 413 test-rebase-emptycommit.t
413 414 test-rebase-inmemory.t
414 415 test-rebase-interruptions.t
415 416 test-rebase-issue-noparam-single-rev.t
416 417 test-rebase-legacy.t
417 418 test-rebase-mq-skip.t
418 419 test-rebase-mq.t
419 420 test-rebase-named-branches.t
420 421 test-rebase-newancestor.t
421 422 test-rebase-obsolete.t
422 423 test-rebase-parameters.t
423 424 test-rebase-partial.t
424 425 test-rebase-pull.t
425 426 test-rebase-rename.t
426 427 test-rebase-scenario-global.t
427 428 test-rebase-templates.t
428 429 test-rebase-transaction.t
429 430 test-rebuildstate.t
430 431 test-record.t
431 432 test-relink.t
432 433 test-remove.t
433 434 test-rename-after-merge.t
434 435 test-rename-dir-merge.t
435 436 test-rename-merge1.t
436 437 test-rename.t
437 438 test-repair-strip.t
438 439 test-repo-compengines.t
439 440 test-resolve.t
440 441 test-revert-flags.t
441 442 test-revert-interactive.t
442 443 test-revert-unknown.t
443 444 test-revlog-ancestry.py
444 445 test-revlog-group-emptyiter.t
445 446 test-revlog-mmapindex.t
446 447 test-revlog-packentry.t
447 448 test-revlog-raw.py
448 449 test-revlog-v2.t
449 450 test-revset-dirstate-parents.t
450 451 test-revset-legacy-lookup.t
451 452 test-revset-outgoing.t
452 453 test-rollback.t
453 454 test-run-tests.py
454 455 test-run-tests.t
455 456 test-schemes.t
456 457 test-serve.t
457 458 test-setdiscovery.t
458 459 test-share.t
459 460 test-shelve.t
460 461 test-show-stack.t
461 462 test-show-work.t
462 463 test-show.t
463 464 test-simple-update.t
464 465 test-simplekeyvaluefile.py
465 466 test-simplemerge.py
466 467 test-single-head.t
467 468 test-sparse-clear.t
468 469 test-sparse-clone.t
469 470 test-sparse-import.t
470 471 test-sparse-merges.t
471 472 test-sparse-profiles.t
472 473 test-sparse-requirement.t
473 474 test-sparse-verbose-json.t
474 475 test-sparse.t
475 476 test-split.t
476 477 test-ssh-bundle1.t
477 478 test-ssh-clone-r.t
478 479 test-ssh-proto-unbundle.t
479 480 test-ssh-proto.t
480 481 test-ssh.t
481 482 test-sshserver.py
482 483 test-stack.t
483 484 test-status-inprocess.py
484 485 test-status-rev.t
485 486 test-status-terse.t
486 487 test-strict.t
487 488 test-strip-cross.t
488 489 test-strip.t
489 490 test-subrepo-deep-nested-change.t
490 491 test-subrepo-missing.t
491 492 test-subrepo-paths.t
492 493 test-subrepo-recursion.t
493 494 test-subrepo-relative-path.t
494 495 test-subrepo.t
495 496 test-symlink-os-yes-fs-no.py
496 497 test-symlink-placeholder.t
497 498 test-symlinks.t
498 499 test-tag.t
499 500 test-tags.t
500 501 test-template-basic.t
501 502 test-template-functions.t
502 503 test-template-keywords.t
503 504 test-template-map.t
504 505 test-transplant.t
505 506 test-treemanifest.t
506 507 test-ui-color.py
507 508 test-ui-config.py
508 509 test-ui-verbosity.py
509 510 test-unamend.t
510 511 test-unbundlehash.t
511 512 test-uncommit.t
512 513 test-unified-test.t
513 514 test-unionrepo.t
514 515 test-unrelated-pull.t
515 516 test-up-local-change.t
516 517 test-update-branches.t
517 518 test-update-dest.t
518 519 test-update-issue1456.t
519 520 test-update-names.t
520 521 test-update-reverse.t
521 522 test-upgrade-repo.t
522 523 test-url-download.t
523 524 test-url-rev.t
524 525 test-url.py
525 526 test-username-newline.t
526 527 test-verify.t
527 528 test-walk.t
528 529 test-walkrepo.py
529 530 test-websub.t
530 531 test-win32text.t
531 532 test-wireproto-clientreactor.py
532 533 test-wireproto-framing.py
533 534 test-wireproto-serverreactor.py
534 535 test-wireproto.py
535 536 test-wsgirequest.py
536 537 test-xdg.t
@@ -1,1276 +1,1277
1 1 #testcases b2-pushkey b2-binary
2 2
3 3 #if b2-pushkey
4 4 $ cat << EOF >> $HGRCPATH
5 5 > [devel]
6 6 > legacy.exchange=bookmarks
7 7 > EOF
8 8 #endif
9 9
10 10 #require serve
11 11
12 12 $ cat << EOF >> $HGRCPATH
13 13 > [ui]
14 14 > logtemplate={rev}:{node|short} {desc|firstline}
15 15 > [phases]
16 16 > publish=False
17 17 > [experimental]
18 18 > evolution.createmarkers=True
19 19 > evolution.exchange=True
20 20 > EOF
21 21
22 22 $ cat > $TESTTMP/hook.sh <<'EOF'
23 23 > echo "test-hook-bookmark: $HG_BOOKMARK: $HG_OLDNODE -> $HG_NODE"
24 24 > EOF
25 25 $ TESTHOOK="hooks.txnclose-bookmark.test=sh $TESTTMP/hook.sh"
26 26
27 27 initialize
28 28
29 29 $ hg init a
30 30 $ cd a
31 31 $ echo 'test' > test
32 32 $ hg commit -Am'test'
33 33 adding test
34 34
35 35 set bookmarks
36 36
37 37 $ hg bookmark X
38 38 $ hg bookmark Y
39 39 $ hg bookmark Z
40 40
41 41 import bookmark by name
42 42
43 43 $ hg init ../b
44 44 $ cd ../b
45 45 $ hg book Y
46 46 $ hg book
47 47 * Y -1:000000000000
48 48 $ hg pull ../a --config "$TESTHOOK"
49 49 pulling from ../a
50 50 requesting all changes
51 51 adding changesets
52 52 adding manifests
53 53 adding file changes
54 54 added 1 changesets with 1 changes to 1 files
55 55 adding remote bookmark X
56 56 updating bookmark Y
57 57 adding remote bookmark Z
58 58 new changesets 4e3505fd9583
59 59 test-hook-bookmark: X: -> 4e3505fd95835d721066b76e75dbb8cc554d7f77
60 60 test-hook-bookmark: Y: 0000000000000000000000000000000000000000 -> 4e3505fd95835d721066b76e75dbb8cc554d7f77
61 61 test-hook-bookmark: Z: -> 4e3505fd95835d721066b76e75dbb8cc554d7f77
62 62 (run 'hg update' to get a working copy)
63 63 $ hg bookmarks
64 64 X 0:4e3505fd9583
65 65 * Y 0:4e3505fd9583
66 66 Z 0:4e3505fd9583
67 67 $ hg debugpushkey ../a namespaces
68 68 bookmarks
69 69 namespaces
70 70 obsolete
71 71 phases
72 72 $ hg debugpushkey ../a bookmarks
73 73 X 4e3505fd95835d721066b76e75dbb8cc554d7f77
74 74 Y 4e3505fd95835d721066b76e75dbb8cc554d7f77
75 75 Z 4e3505fd95835d721066b76e75dbb8cc554d7f77
76 76
77 77 delete the bookmark to re-pull it
78 78
79 79 $ hg book -d X
80 80 $ hg pull -B X ../a
81 81 pulling from ../a
82 82 no changes found
83 83 adding remote bookmark X
84 84
85 85 finally no-op pull
86 86
87 87 $ hg pull -B X ../a
88 88 pulling from ../a
89 89 no changes found
90 90 $ hg bookmark
91 91 X 0:4e3505fd9583
92 92 * Y 0:4e3505fd9583
93 93 Z 0:4e3505fd9583
94 94
95 95 export bookmark by name
96 96
97 97 $ hg bookmark W
98 98 $ hg bookmark foo
99 99 $ hg bookmark foobar
100 100 $ hg push -B W ../a
101 101 pushing to ../a
102 102 searching for changes
103 103 no changes found
104 104 exporting bookmark W
105 105 [1]
106 106 $ hg -R ../a bookmarks
107 107 W -1:000000000000
108 108 X 0:4e3505fd9583
109 109 Y 0:4e3505fd9583
110 110 * Z 0:4e3505fd9583
111 111
112 112 delete a remote bookmark
113 113
114 114 $ hg book -d W
115 115
116 116 #if b2-pushkey
117 117
118 118 $ hg push -B W ../a --config "$TESTHOOK" --debug --config devel.bundle2.debug=yes
119 119 pushing to ../a
120 120 query 1; heads
121 121 searching for changes
122 122 all remote heads known locally
123 123 listing keys for "phases"
124 124 checking for updated bookmarks
125 125 listing keys for "bookmarks"
126 126 no changes found
127 127 bundle2-output-bundle: "HG20", 4 parts total
128 128 bundle2-output: start emission of HG20 stream
129 129 bundle2-output: bundle parameter:
130 130 bundle2-output: start of parts
131 131 bundle2-output: bundle part: "replycaps"
132 132 bundle2-output-part: "replycaps" 222 bytes payload
133 133 bundle2-output: part 0: "REPLYCAPS"
134 134 bundle2-output: header chunk size: 16
135 135 bundle2-output: payload chunk size: 222
136 136 bundle2-output: closing payload chunk
137 137 bundle2-output: bundle part: "check:bookmarks"
138 138 bundle2-output-part: "check:bookmarks" 23 bytes payload
139 139 bundle2-output: part 1: "CHECK:BOOKMARKS"
140 140 bundle2-output: header chunk size: 22
141 141 bundle2-output: payload chunk size: 23
142 142 bundle2-output: closing payload chunk
143 143 bundle2-output: bundle part: "check:phases"
144 144 bundle2-output-part: "check:phases" 48 bytes payload
145 145 bundle2-output: part 2: "CHECK:PHASES"
146 146 bundle2-output: header chunk size: 19
147 147 bundle2-output: payload chunk size: 48
148 148 bundle2-output: closing payload chunk
149 149 bundle2-output: bundle part: "pushkey"
150 150 bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
151 151 bundle2-output: part 3: "PUSHKEY"
152 152 bundle2-output: header chunk size: 90
153 153 bundle2-output: closing payload chunk
154 154 bundle2-output: end of bundle
155 155 bundle2-input: start processing of HG20 stream
156 156 bundle2-input: reading bundle2 stream parameters
157 157 bundle2-input-bundle: with-transaction
158 158 bundle2-input: start extraction of bundle2 parts
159 159 bundle2-input: part header size: 16
160 160 bundle2-input: part type: "REPLYCAPS"
161 161 bundle2-input: part id: "0"
162 162 bundle2-input: part parameters: 0
163 163 bundle2-input: found a handler for part replycaps
164 164 bundle2-input-part: "replycaps" supported
165 165 bundle2-input: payload chunk size: 222
166 166 bundle2-input: payload chunk size: 0
167 167 bundle2-input-part: total payload size 222
168 168 bundle2-input: part header size: 22
169 169 bundle2-input: part type: "CHECK:BOOKMARKS"
170 170 bundle2-input: part id: "1"
171 171 bundle2-input: part parameters: 0
172 172 bundle2-input: found a handler for part check:bookmarks
173 173 bundle2-input-part: "check:bookmarks" supported
174 174 bundle2-input: payload chunk size: 23
175 175 bundle2-input: payload chunk size: 0
176 176 bundle2-input-part: total payload size 23
177 177 bundle2-input: part header size: 19
178 178 bundle2-input: part type: "CHECK:PHASES"
179 179 bundle2-input: part id: "2"
180 180 bundle2-input: part parameters: 0
181 181 bundle2-input: found a handler for part check:phases
182 182 bundle2-input-part: "check:phases" supported
183 183 bundle2-input: payload chunk size: 48
184 184 bundle2-input: payload chunk size: 0
185 185 bundle2-input-part: total payload size 48
186 186 bundle2-input: part header size: 90
187 187 bundle2-input: part type: "PUSHKEY"
188 188 bundle2-input: part id: "3"
189 189 bundle2-input: part parameters: 4
190 190 bundle2-input: found a handler for part pushkey
191 191 bundle2-input-part: "pushkey" (params: 4 mandatory) supported
192 192 pushing key for "bookmarks:W"
193 193 bundle2-input: payload chunk size: 0
194 194 bundle2-input: part header size: 0
195 195 bundle2-input: end of bundle2 stream
196 196 bundle2-input-bundle: 3 parts total
197 197 running hook txnclose-bookmark.test: sh $TESTTMP/hook.sh
198 198 test-hook-bookmark: W: 0000000000000000000000000000000000000000 ->
199 199 bundle2-output-bundle: "HG20", 1 parts total
200 200 bundle2-output: start emission of HG20 stream
201 201 bundle2-output: bundle parameter:
202 202 bundle2-output: start of parts
203 203 bundle2-output: bundle part: "reply:pushkey"
204 204 bundle2-output-part: "reply:pushkey" (params: 0 advisory) empty payload
205 205 bundle2-output: part 0: "REPLY:PUSHKEY"
206 206 bundle2-output: header chunk size: 43
207 207 bundle2-output: closing payload chunk
208 208 bundle2-output: end of bundle
209 209 bundle2-input: start processing of HG20 stream
210 210 bundle2-input: reading bundle2 stream parameters
211 211 bundle2-input-bundle: no-transaction
212 212 bundle2-input: start extraction of bundle2 parts
213 213 bundle2-input: part header size: 43
214 214 bundle2-input: part type: "REPLY:PUSHKEY"
215 215 bundle2-input: part id: "0"
216 216 bundle2-input: part parameters: 2
217 217 bundle2-input: found a handler for part reply:pushkey
218 218 bundle2-input-part: "reply:pushkey" (params: 0 advisory) supported
219 219 bundle2-input: payload chunk size: 0
220 220 bundle2-input: part header size: 0
221 221 bundle2-input: end of bundle2 stream
222 222 bundle2-input-bundle: 0 parts total
223 223 deleting remote bookmark W
224 224 listing keys for "phases"
225 225 [1]
226 226
227 227 #endif
228 228 #if b2-binary
229 229
230 230 $ hg push -B W ../a --config "$TESTHOOK" --debug --config devel.bundle2.debug=yes
231 231 pushing to ../a
232 232 query 1; heads
233 233 searching for changes
234 234 all remote heads known locally
235 235 listing keys for "phases"
236 236 checking for updated bookmarks
237 237 listing keys for "bookmarks"
238 238 no changes found
239 239 bundle2-output-bundle: "HG20", 4 parts total
240 240 bundle2-output: start emission of HG20 stream
241 241 bundle2-output: bundle parameter:
242 242 bundle2-output: start of parts
243 243 bundle2-output: bundle part: "replycaps"
244 244 bundle2-output-part: "replycaps" 222 bytes payload
245 245 bundle2-output: part 0: "REPLYCAPS"
246 246 bundle2-output: header chunk size: 16
247 247 bundle2-output: payload chunk size: 222
248 248 bundle2-output: closing payload chunk
249 249 bundle2-output: bundle part: "check:bookmarks"
250 250 bundle2-output-part: "check:bookmarks" 23 bytes payload
251 251 bundle2-output: part 1: "CHECK:BOOKMARKS"
252 252 bundle2-output: header chunk size: 22
253 253 bundle2-output: payload chunk size: 23
254 254 bundle2-output: closing payload chunk
255 255 bundle2-output: bundle part: "check:phases"
256 256 bundle2-output-part: "check:phases" 48 bytes payload
257 257 bundle2-output: part 2: "CHECK:PHASES"
258 258 bundle2-output: header chunk size: 19
259 259 bundle2-output: payload chunk size: 48
260 260 bundle2-output: closing payload chunk
261 261 bundle2-output: bundle part: "bookmarks"
262 262 bundle2-output-part: "bookmarks" 23 bytes payload
263 263 bundle2-output: part 3: "BOOKMARKS"
264 264 bundle2-output: header chunk size: 16
265 265 bundle2-output: payload chunk size: 23
266 266 bundle2-output: closing payload chunk
267 267 bundle2-output: end of bundle
268 268 bundle2-input: start processing of HG20 stream
269 269 bundle2-input: reading bundle2 stream parameters
270 270 bundle2-input-bundle: with-transaction
271 271 bundle2-input: start extraction of bundle2 parts
272 272 bundle2-input: part header size: 16
273 273 bundle2-input: part type: "REPLYCAPS"
274 274 bundle2-input: part id: "0"
275 275 bundle2-input: part parameters: 0
276 276 bundle2-input: found a handler for part replycaps
277 277 bundle2-input-part: "replycaps" supported
278 278 bundle2-input: payload chunk size: 222
279 279 bundle2-input: payload chunk size: 0
280 280 bundle2-input-part: total payload size 222
281 281 bundle2-input: part header size: 22
282 282 bundle2-input: part type: "CHECK:BOOKMARKS"
283 283 bundle2-input: part id: "1"
284 284 bundle2-input: part parameters: 0
285 285 bundle2-input: found a handler for part check:bookmarks
286 286 bundle2-input-part: "check:bookmarks" supported
287 287 bundle2-input: payload chunk size: 23
288 288 bundle2-input: payload chunk size: 0
289 289 bundle2-input-part: total payload size 23
290 290 bundle2-input: part header size: 19
291 291 bundle2-input: part type: "CHECK:PHASES"
292 292 bundle2-input: part id: "2"
293 293 bundle2-input: part parameters: 0
294 294 bundle2-input: found a handler for part check:phases
295 295 bundle2-input-part: "check:phases" supported
296 296 bundle2-input: payload chunk size: 48
297 297 bundle2-input: payload chunk size: 0
298 298 bundle2-input-part: total payload size 48
299 299 bundle2-input: part header size: 16
300 300 bundle2-input: part type: "BOOKMARKS"
301 301 bundle2-input: part id: "3"
302 302 bundle2-input: part parameters: 0
303 303 bundle2-input: found a handler for part bookmarks
304 304 bundle2-input-part: "bookmarks" supported
305 305 bundle2-input: payload chunk size: 23
306 306 bundle2-input: payload chunk size: 0
307 307 bundle2-input-part: total payload size 23
308 308 bundle2-input: part header size: 0
309 309 bundle2-input: end of bundle2 stream
310 310 bundle2-input-bundle: 3 parts total
311 311 running hook txnclose-bookmark.test: sh $TESTTMP/hook.sh
312 312 test-hook-bookmark: W: 0000000000000000000000000000000000000000 ->
313 313 bundle2-output-bundle: "HG20", 0 parts total
314 314 bundle2-output: start emission of HG20 stream
315 315 bundle2-output: bundle parameter:
316 316 bundle2-output: start of parts
317 317 bundle2-output: end of bundle
318 318 bundle2-input: start processing of HG20 stream
319 319 bundle2-input: reading bundle2 stream parameters
320 320 bundle2-input-bundle: no-transaction
321 321 bundle2-input: start extraction of bundle2 parts
322 322 bundle2-input: part header size: 0
323 323 bundle2-input: end of bundle2 stream
324 324 bundle2-input-bundle: 0 parts total
325 325 deleting remote bookmark W
326 326 listing keys for "phases"
327 327 [1]
328 328
329 329 #endif
330 330
331 331 export the active bookmark
332 332
333 333 $ hg bookmark V
334 334 $ hg push -B . ../a
335 335 pushing to ../a
336 336 searching for changes
337 337 no changes found
338 338 exporting bookmark V
339 339 [1]
340 340
341 341 exporting the active bookmark with 'push -B .'
342 342 demand that one of the bookmarks is activated
343 343
344 344 $ hg update -r default
345 345 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
346 346 (leaving bookmark V)
347 347 $ hg push -B . ../a
348 348 abort: no active bookmark
349 349 [255]
350 350 $ hg update -r V
351 351 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
352 352 (activating bookmark V)
353 353
354 354 delete the bookmark
355 355
356 356 $ hg book -d V
357 357 $ hg push -B V ../a
358 358 pushing to ../a
359 359 searching for changes
360 360 no changes found
361 361 deleting remote bookmark V
362 362 [1]
363 363 $ hg up foobar
364 364 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
365 365 (activating bookmark foobar)
366 366
367 367 push/pull name that doesn't exist
368 368
369 369 $ hg push -B badname ../a
370 370 pushing to ../a
371 371 searching for changes
372 372 bookmark badname does not exist on the local or remote repository!
373 373 no changes found
374 374 [2]
375 375 $ hg pull -B anotherbadname ../a
376 376 pulling from ../a
377 377 abort: remote bookmark anotherbadname not found!
378 378 [255]
379 379
380 380 divergent bookmarks
381 381
382 382 $ cd ../a
383 383 $ echo c1 > f1
384 384 $ hg ci -Am1
385 385 adding f1
386 386 $ hg book -f @
387 387 $ hg book -f X
388 388 $ hg book
389 389 @ 1:0d2164f0ce0d
390 390 * X 1:0d2164f0ce0d
391 391 Y 0:4e3505fd9583
392 392 Z 1:0d2164f0ce0d
393 393
394 394 $ cd ../b
395 395 $ hg up
396 396 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
397 397 updating bookmark foobar
398 398 $ echo c2 > f2
399 399 $ hg ci -Am2
400 400 adding f2
401 401 $ hg book -if @
402 402 $ hg book -if X
403 403 $ hg book
404 404 @ 1:9b140be10808
405 405 X 1:9b140be10808
406 406 Y 0:4e3505fd9583
407 407 Z 0:4e3505fd9583
408 408 foo -1:000000000000
409 409 * foobar 1:9b140be10808
410 410
411 411 $ hg pull --config paths.foo=../a foo --config "$TESTHOOK"
412 412 pulling from $TESTTMP/a
413 413 searching for changes
414 414 adding changesets
415 415 adding manifests
416 416 adding file changes
417 417 added 1 changesets with 1 changes to 1 files (+1 heads)
418 418 divergent bookmark @ stored as @foo
419 419 divergent bookmark X stored as X@foo
420 420 updating bookmark Z
421 421 new changesets 0d2164f0ce0d
422 422 test-hook-bookmark: @foo: -> 0d2164f0ce0d8f1d6f94351eba04b794909be66c
423 423 test-hook-bookmark: X@foo: -> 0d2164f0ce0d8f1d6f94351eba04b794909be66c
424 424 test-hook-bookmark: Z: 4e3505fd95835d721066b76e75dbb8cc554d7f77 -> 0d2164f0ce0d8f1d6f94351eba04b794909be66c
425 425 (run 'hg heads' to see heads, 'hg merge' to merge)
426 426 $ hg book
427 427 @ 1:9b140be10808
428 428 @foo 2:0d2164f0ce0d
429 429 X 1:9b140be10808
430 430 X@foo 2:0d2164f0ce0d
431 431 Y 0:4e3505fd9583
432 432 Z 2:0d2164f0ce0d
433 433 foo -1:000000000000
434 434 * foobar 1:9b140be10808
435 435
436 436 (test that too many divergence of bookmark)
437 437
438 438 $ $PYTHON $TESTDIR/seq.py 1 100 | while read i; do hg bookmarks -r 000000000000 "X@${i}"; done
439 439 $ hg pull ../a
440 440 pulling from ../a
441 441 searching for changes
442 442 no changes found
443 443 warning: failed to assign numbered name to divergent bookmark X
444 444 divergent bookmark @ stored as @1
445 445 $ hg bookmarks | grep '^ X' | grep -v ':000000000000'
446 446 X 1:9b140be10808
447 447 X@foo 2:0d2164f0ce0d
448 448
449 449 (test that remotely diverged bookmarks are reused if they aren't changed)
450 450
451 451 $ hg bookmarks | grep '^ @'
452 452 @ 1:9b140be10808
453 453 @1 2:0d2164f0ce0d
454 454 @foo 2:0d2164f0ce0d
455 455 $ hg pull ../a
456 456 pulling from ../a
457 457 searching for changes
458 458 no changes found
459 459 warning: failed to assign numbered name to divergent bookmark X
460 460 divergent bookmark @ stored as @1
461 461 $ hg bookmarks | grep '^ @'
462 462 @ 1:9b140be10808
463 463 @1 2:0d2164f0ce0d
464 464 @foo 2:0d2164f0ce0d
465 465
466 466 $ $PYTHON $TESTDIR/seq.py 1 100 | while read i; do hg bookmarks -d "X@${i}"; done
467 467 $ hg bookmarks -d "@1"
468 468
469 469 $ hg push -f ../a
470 470 pushing to ../a
471 471 searching for changes
472 472 adding changesets
473 473 adding manifests
474 474 adding file changes
475 475 added 1 changesets with 1 changes to 1 files (+1 heads)
476 476 $ hg -R ../a book
477 477 @ 1:0d2164f0ce0d
478 478 * X 1:0d2164f0ce0d
479 479 Y 0:4e3505fd9583
480 480 Z 1:0d2164f0ce0d
481 481
482 482 explicit pull should overwrite the local version (issue4439)
483 483
484 484 $ hg update -r X
485 485 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
486 486 (activating bookmark X)
487 487 $ hg pull --config paths.foo=../a foo -B . --config "$TESTHOOK"
488 488 pulling from $TESTTMP/a
489 489 no changes found
490 490 divergent bookmark @ stored as @foo
491 491 importing bookmark X
492 492 test-hook-bookmark: @foo: 0d2164f0ce0d8f1d6f94351eba04b794909be66c -> 0d2164f0ce0d8f1d6f94351eba04b794909be66c
493 493 test-hook-bookmark: X: 9b140be1080824d768c5a4691a564088eede71f9 -> 0d2164f0ce0d8f1d6f94351eba04b794909be66c
494 494
495 495 reinstall state for further testing:
496 496
497 497 $ hg book -fr 9b140be10808 X
498 498
499 499 revsets should not ignore divergent bookmarks
500 500
501 501 $ hg bookmark -fr 1 Z
502 502 $ hg log -r 'bookmark()' --template '{rev}:{node|short} {bookmarks}\n'
503 503 0:4e3505fd9583 Y
504 504 1:9b140be10808 @ X Z foobar
505 505 2:0d2164f0ce0d @foo X@foo
506 506 $ hg log -r 'bookmark("X@foo")' --template '{rev}:{node|short} {bookmarks}\n'
507 507 2:0d2164f0ce0d @foo X@foo
508 508 $ hg log -r 'bookmark("re:X@foo")' --template '{rev}:{node|short} {bookmarks}\n'
509 509 2:0d2164f0ce0d @foo X@foo
510 510
511 511 update a remote bookmark from a non-head to a head
512 512
513 513 $ hg up -q Y
514 514 $ echo c3 > f2
515 515 $ hg ci -Am3
516 516 adding f2
517 517 created new head
518 518 $ hg push ../a --config "$TESTHOOK"
519 519 pushing to ../a
520 520 searching for changes
521 521 adding changesets
522 522 adding manifests
523 523 adding file changes
524 524 added 1 changesets with 1 changes to 1 files (+1 heads)
525 525 test-hook-bookmark: Y: 4e3505fd95835d721066b76e75dbb8cc554d7f77 -> f6fc62dde3c0771e29704af56ba4d8af77abcc2f
526 526 updating bookmark Y
527 527 $ hg -R ../a book
528 528 @ 1:0d2164f0ce0d
529 529 * X 1:0d2164f0ce0d
530 530 Y 3:f6fc62dde3c0
531 531 Z 1:0d2164f0ce0d
532 532
533 533 update a bookmark in the middle of a client pulling changes
534 534
535 535 $ cd ..
536 536 $ hg clone -q a pull-race
537 537
538 538 We want to use http because it is stateless and therefore more susceptible to
539 539 race conditions
540 540
541 541 $ hg serve -R pull-race -p $HGPORT -d --pid-file=pull-race.pid -E main-error.log
542 542 $ cat pull-race.pid >> $DAEMON_PIDS
543 543
544 544 $ cat <<EOF > $TESTTMP/out_makecommit.sh
545 545 > #!/bin/sh
546 546 > hg ci -Am5
547 547 > echo committed in pull-race
548 548 > EOF
549 549
550 550 $ hg clone -q http://localhost:$HGPORT/ pull-race2 --config "$TESTHOOK"
551 551 test-hook-bookmark: @: -> 0d2164f0ce0d8f1d6f94351eba04b794909be66c
552 552 test-hook-bookmark: X: -> 0d2164f0ce0d8f1d6f94351eba04b794909be66c
553 553 test-hook-bookmark: Y: -> f6fc62dde3c0771e29704af56ba4d8af77abcc2f
554 554 test-hook-bookmark: Z: -> 0d2164f0ce0d8f1d6f94351eba04b794909be66c
555 555 $ cd pull-race
556 556 $ hg up -q Y
557 557 $ echo c4 > f2
558 558 $ hg ci -Am4
559 559 $ echo c5 > f3
560 560 $ cat <<EOF > .hg/hgrc
561 561 > [hooks]
562 562 > outgoing.makecommit = sh $TESTTMP/out_makecommit.sh
563 563 > EOF
564 564
565 565 (new config needs a server restart)
566 566
567 567 $ cd ..
568 568 $ killdaemons.py
569 569 $ hg serve -R pull-race -p $HGPORT -d --pid-file=pull-race.pid -E main-error.log
570 570 $ cat pull-race.pid >> $DAEMON_PIDS
571 571 $ cd pull-race2
572 572 $ hg -R $TESTTMP/pull-race book
573 573 @ 1:0d2164f0ce0d
574 574 X 1:0d2164f0ce0d
575 575 * Y 4:b0a5eff05604
576 576 Z 1:0d2164f0ce0d
577 577 $ hg pull
578 578 pulling from http://localhost:$HGPORT/
579 579 searching for changes
580 580 adding changesets
581 581 adding manifests
582 582 adding file changes
583 583 added 1 changesets with 1 changes to 1 files
584 584 updating bookmark Y
585 585 new changesets b0a5eff05604
586 586 (run 'hg update' to get a working copy)
587 587 $ hg book
588 588 * @ 1:0d2164f0ce0d
589 589 X 1:0d2164f0ce0d
590 590 Y 4:b0a5eff05604
591 591 Z 1:0d2164f0ce0d
592 592
593 593 Update a bookmark right after the initial lookup -B (issue4689)
594 594
595 595 $ echo c6 > ../pull-race/f3 # to be committed during the race
596 596 $ cat <<EOF > $TESTTMP/listkeys_makecommit.sh
597 597 > #!/bin/sh
598 598 > if hg st | grep -q M; then
599 599 > hg commit -m race
600 600 > echo committed in pull-race
601 601 > else
602 602 > exit 0
603 603 > fi
604 604 > EOF
605 605 $ cat <<EOF > ../pull-race/.hg/hgrc
606 606 > [hooks]
607 607 > # If anything to commit, commit it right after the first key listing used
608 608 > # during lookup. This makes the commit appear before the actual getbundle
609 609 > # call.
610 610 > listkeys.makecommit= sh $TESTTMP/listkeys_makecommit.sh
611 611 > EOF
612 612
613 613 (new config need server restart)
614 614
615 615 $ killdaemons.py
616 616 $ hg serve -R ../pull-race -p $HGPORT -d --pid-file=../pull-race.pid -E main-error.log
617 617 $ cat ../pull-race.pid >> $DAEMON_PIDS
618 618
619 619 $ hg -R $TESTTMP/pull-race book
620 620 @ 1:0d2164f0ce0d
621 621 X 1:0d2164f0ce0d
622 622 * Y 5:35d1ef0a8d1b
623 623 Z 1:0d2164f0ce0d
624 624 $ hg update -r Y
625 625 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
626 626 (activating bookmark Y)
627 627 $ hg pull -B .
628 628 pulling from http://localhost:$HGPORT/
629 629 searching for changes
630 630 adding changesets
631 631 adding manifests
632 632 adding file changes
633 633 added 1 changesets with 1 changes to 1 files
634 634 updating bookmark Y
635 635 new changesets 35d1ef0a8d1b
636 636 (run 'hg update' to get a working copy)
637 637 $ hg book
638 638 @ 1:0d2164f0ce0d
639 639 X 1:0d2164f0ce0d
640 640 * Y 5:35d1ef0a8d1b
641 641 Z 1:0d2164f0ce0d
642 642
643 643 (done with this section of the test)
644 644
645 645 $ killdaemons.py
646 646 $ cd ../b
647 647
648 648 diverging a remote bookmark fails
649 649
650 650 $ hg up -q 4e3505fd9583
651 651 $ echo c4 > f2
652 652 $ hg ci -Am4
653 653 adding f2
654 654 created new head
655 655 $ echo c5 > f2
656 656 $ hg ci -Am5
657 657 $ hg log -G
658 658 @ 5:c922c0139ca0 5
659 659 |
660 660 o 4:4efff6d98829 4
661 661 |
662 662 | o 3:f6fc62dde3c0 3
663 663 |/
664 664 | o 2:0d2164f0ce0d 1
665 665 |/
666 666 | o 1:9b140be10808 2
667 667 |/
668 668 o 0:4e3505fd9583 test
669 669
670 670
671 671 $ hg book -f Y
672 672
673 673 $ cat <<EOF > ../a/.hg/hgrc
674 674 > [web]
675 675 > push_ssl = false
676 676 > allow_push = *
677 677 > EOF
678 678
679 679 $ hg serve -R ../a -p $HGPORT2 -d --pid-file=../hg2.pid
680 680 $ cat ../hg2.pid >> $DAEMON_PIDS
681 681
682 682 $ hg push http://localhost:$HGPORT2/
683 683 pushing to http://localhost:$HGPORT2/
684 684 searching for changes
685 685 abort: push creates new remote head c922c0139ca0 with bookmark 'Y'!
686 686 (merge or see 'hg help push' for details about pushing new heads)
687 687 [255]
688 688 $ hg -R ../a book
689 689 @ 1:0d2164f0ce0d
690 690 * X 1:0d2164f0ce0d
691 691 Y 3:f6fc62dde3c0
692 692 Z 1:0d2164f0ce0d
693 693
694 694
695 695 Unrelated marker does not alter the decision
696 696
697 697 $ hg debugobsolete aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
698 698 $ hg push http://localhost:$HGPORT2/
699 699 pushing to http://localhost:$HGPORT2/
700 700 searching for changes
701 701 abort: push creates new remote head c922c0139ca0 with bookmark 'Y'!
702 702 (merge or see 'hg help push' for details about pushing new heads)
703 703 [255]
704 704 $ hg -R ../a book
705 705 @ 1:0d2164f0ce0d
706 706 * X 1:0d2164f0ce0d
707 707 Y 3:f6fc62dde3c0
708 708 Z 1:0d2164f0ce0d
709 709
710 710 Update to a successor works
711 711
712 712 $ hg id --debug -r 3
713 713 f6fc62dde3c0771e29704af56ba4d8af77abcc2f
714 714 $ hg id --debug -r 4
715 715 4efff6d98829d9c824c621afd6e3f01865f5439f
716 716 $ hg id --debug -r 5
717 717 c922c0139ca03858f655e4a2af4dd02796a63969 tip Y
718 718 $ hg debugobsolete f6fc62dde3c0771e29704af56ba4d8af77abcc2f cccccccccccccccccccccccccccccccccccccccc
719 719 obsoleted 1 changesets
720 720 $ hg debugobsolete cccccccccccccccccccccccccccccccccccccccc 4efff6d98829d9c824c621afd6e3f01865f5439f
721 721 $ hg push http://localhost:$HGPORT2/
722 722 pushing to http://localhost:$HGPORT2/
723 723 searching for changes
724 724 remote: adding changesets
725 725 remote: adding manifests
726 726 remote: adding file changes
727 727 remote: added 2 changesets with 2 changes to 1 files (+1 heads)
728 728 remote: 2 new obsolescence markers
729 729 remote: obsoleted 1 changesets
730 730 updating bookmark Y
731 731 $ hg -R ../a book
732 732 @ 1:0d2164f0ce0d
733 733 * X 1:0d2164f0ce0d
734 734 Y 5:c922c0139ca0
735 735 Z 1:0d2164f0ce0d
736 736
737 737 hgweb
738 738
739 739 $ cat <<EOF > .hg/hgrc
740 740 > [web]
741 741 > push_ssl = false
742 742 > allow_push = *
743 743 > EOF
744 744
745 745 $ hg serve -p $HGPORT -d --pid-file=../hg.pid -E errors.log
746 746 $ cat ../hg.pid >> $DAEMON_PIDS
747 747 $ cd ../a
748 748
749 749 $ hg debugpushkey http://localhost:$HGPORT/ namespaces
750 750 bookmarks
751 751 namespaces
752 752 obsolete
753 753 phases
754 754 $ hg debugpushkey http://localhost:$HGPORT/ bookmarks
755 755 @ 9b140be1080824d768c5a4691a564088eede71f9
756 756 X 9b140be1080824d768c5a4691a564088eede71f9
757 757 Y c922c0139ca03858f655e4a2af4dd02796a63969
758 758 Z 9b140be1080824d768c5a4691a564088eede71f9
759 759 foo 0000000000000000000000000000000000000000
760 760 foobar 9b140be1080824d768c5a4691a564088eede71f9
761 761 $ hg out -B http://localhost:$HGPORT/
762 762 comparing with http://localhost:$HGPORT/
763 763 searching for changed bookmarks
764 764 @ 0d2164f0ce0d
765 765 X 0d2164f0ce0d
766 766 Z 0d2164f0ce0d
767 767 foo
768 768 foobar
769 769 $ hg push -B Z http://localhost:$HGPORT/
770 770 pushing to http://localhost:$HGPORT/
771 771 searching for changes
772 772 no changes found
773 773 updating bookmark Z
774 774 [1]
775 775 $ hg book -d Z
776 776 $ hg in -B http://localhost:$HGPORT/
777 777 comparing with http://localhost:$HGPORT/
778 778 searching for changed bookmarks
779 779 @ 9b140be10808
780 780 X 9b140be10808
781 781 Z 0d2164f0ce0d
782 782 foo 000000000000
783 783 foobar 9b140be10808
784 784 $ hg pull -B Z http://localhost:$HGPORT/
785 785 pulling from http://localhost:$HGPORT/
786 786 no changes found
787 787 divergent bookmark @ stored as @1
788 788 divergent bookmark X stored as X@1
789 789 adding remote bookmark Z
790 790 adding remote bookmark foo
791 791 adding remote bookmark foobar
792 792 $ hg clone http://localhost:$HGPORT/ cloned-bookmarks
793 793 requesting all changes
794 794 adding changesets
795 795 adding manifests
796 796 adding file changes
797 797 added 5 changesets with 5 changes to 3 files (+2 heads)
798 798 2 new obsolescence markers
799 799 new changesets 4e3505fd9583:c922c0139ca0
800 800 updating to bookmark @
801 801 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
802 802 $ hg -R cloned-bookmarks bookmarks
803 803 * @ 1:9b140be10808
804 804 X 1:9b140be10808
805 805 Y 4:c922c0139ca0
806 806 Z 2:0d2164f0ce0d
807 807 foo -1:000000000000
808 808 foobar 1:9b140be10808
809 809
810 810 $ cd ..
811 811
812 812 Test to show result of bookmarks comparison
813 813
814 814 $ mkdir bmcomparison
815 815 $ cd bmcomparison
816 816
817 817 $ hg init source
818 818 $ hg -R source debugbuilddag '+2*2*3*4'
819 819 $ hg -R source log -G --template '{rev}:{node|short}'
820 820 o 4:e7bd5218ca15
821 821 |
822 822 | o 3:6100d3090acf
823 823 |/
824 824 | o 2:fa942426a6fd
825 825 |/
826 826 | o 1:66f7d451a68b
827 827 |/
828 828 o 0:1ea73414a91b
829 829
830 830 $ hg -R source bookmarks -r 0 SAME
831 831 $ hg -R source bookmarks -r 0 ADV_ON_REPO1
832 832 $ hg -R source bookmarks -r 0 ADV_ON_REPO2
833 833 $ hg -R source bookmarks -r 0 DIFF_ADV_ON_REPO1
834 834 $ hg -R source bookmarks -r 0 DIFF_ADV_ON_REPO2
835 835 $ hg -R source bookmarks -r 1 DIVERGED
836 836
837 837 $ hg clone -U source repo1
838 838
839 839 (test that incoming/outgoing exit with 1, if there is no bookmark to
840 840 be exchanged)
841 841
842 842 $ hg -R repo1 incoming -B
843 843 comparing with $TESTTMP/bmcomparison/source
844 844 searching for changed bookmarks
845 845 no changed bookmarks found
846 846 [1]
847 847 $ hg -R repo1 outgoing -B
848 848 comparing with $TESTTMP/bmcomparison/source
849 849 searching for changed bookmarks
850 850 no changed bookmarks found
851 851 [1]
852 852
853 853 $ hg -R repo1 bookmarks -f -r 1 ADD_ON_REPO1
854 854 $ hg -R repo1 bookmarks -f -r 2 ADV_ON_REPO1
855 855 $ hg -R repo1 bookmarks -f -r 3 DIFF_ADV_ON_REPO1
856 856 $ hg -R repo1 bookmarks -f -r 3 DIFF_DIVERGED
857 857 $ hg -R repo1 -q --config extensions.mq= strip 4
858 858 $ hg -R repo1 log -G --template '{node|short} ({bookmarks})'
859 859 o 6100d3090acf (DIFF_ADV_ON_REPO1 DIFF_DIVERGED)
860 860 |
861 861 | o fa942426a6fd (ADV_ON_REPO1)
862 862 |/
863 863 | o 66f7d451a68b (ADD_ON_REPO1 DIVERGED)
864 864 |/
865 865 o 1ea73414a91b (ADV_ON_REPO2 DIFF_ADV_ON_REPO2 SAME)
866 866
867 867
868 868 $ hg clone -U source repo2
869 869 $ hg -R repo2 bookmarks -f -r 1 ADD_ON_REPO2
870 870 $ hg -R repo2 bookmarks -f -r 1 ADV_ON_REPO2
871 871 $ hg -R repo2 bookmarks -f -r 2 DIVERGED
872 872 $ hg -R repo2 bookmarks -f -r 4 DIFF_ADV_ON_REPO2
873 873 $ hg -R repo2 bookmarks -f -r 4 DIFF_DIVERGED
874 874 $ hg -R repo2 -q --config extensions.mq= strip 3
875 875 $ hg -R repo2 log -G --template '{node|short} ({bookmarks})'
876 876 o e7bd5218ca15 (DIFF_ADV_ON_REPO2 DIFF_DIVERGED)
877 877 |
878 878 | o fa942426a6fd (DIVERGED)
879 879 |/
880 880 | o 66f7d451a68b (ADD_ON_REPO2 ADV_ON_REPO2)
881 881 |/
882 882 o 1ea73414a91b (ADV_ON_REPO1 DIFF_ADV_ON_REPO1 SAME)
883 883
884 884
885 885 (test that difference of bookmarks between repositories are fully shown)
886 886
887 887 $ hg -R repo1 incoming -B repo2 -v
888 888 comparing with repo2
889 889 searching for changed bookmarks
890 890 ADD_ON_REPO2 66f7d451a68b added
891 891 ADV_ON_REPO2 66f7d451a68b advanced
892 892 DIFF_ADV_ON_REPO2 e7bd5218ca15 changed
893 893 DIFF_DIVERGED e7bd5218ca15 changed
894 894 DIVERGED fa942426a6fd diverged
895 895 $ hg -R repo1 outgoing -B repo2 -v
896 896 comparing with repo2
897 897 searching for changed bookmarks
898 898 ADD_ON_REPO1 66f7d451a68b added
899 899 ADD_ON_REPO2 deleted
900 900 ADV_ON_REPO1 fa942426a6fd advanced
901 901 DIFF_ADV_ON_REPO1 6100d3090acf advanced
902 902 DIFF_ADV_ON_REPO2 1ea73414a91b changed
903 903 DIFF_DIVERGED 6100d3090acf changed
904 904 DIVERGED 66f7d451a68b diverged
905 905
906 906 $ hg -R repo2 incoming -B repo1 -v
907 907 comparing with repo1
908 908 searching for changed bookmarks
909 909 ADD_ON_REPO1 66f7d451a68b added
910 910 ADV_ON_REPO1 fa942426a6fd advanced
911 911 DIFF_ADV_ON_REPO1 6100d3090acf changed
912 912 DIFF_DIVERGED 6100d3090acf changed
913 913 DIVERGED 66f7d451a68b diverged
914 914 $ hg -R repo2 outgoing -B repo1 -v
915 915 comparing with repo1
916 916 searching for changed bookmarks
917 917 ADD_ON_REPO1 deleted
918 918 ADD_ON_REPO2 66f7d451a68b added
919 919 ADV_ON_REPO2 66f7d451a68b advanced
920 920 DIFF_ADV_ON_REPO1 1ea73414a91b changed
921 921 DIFF_ADV_ON_REPO2 e7bd5218ca15 advanced
922 922 DIFF_DIVERGED e7bd5218ca15 changed
923 923 DIVERGED fa942426a6fd diverged
924 924
925 925 $ cd ..
926 926
927 927 Pushing a bookmark should only push the changes required by that
928 928 bookmark, not all outgoing changes:
929 929 $ hg clone http://localhost:$HGPORT/ addmarks
930 930 requesting all changes
931 931 adding changesets
932 932 adding manifests
933 933 adding file changes
934 934 added 5 changesets with 5 changes to 3 files (+2 heads)
935 935 2 new obsolescence markers
936 936 new changesets 4e3505fd9583:c922c0139ca0
937 937 updating to bookmark @
938 938 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
939 939 $ cd addmarks
940 940 $ echo foo > foo
941 941 $ hg add foo
942 942 $ hg commit -m 'add foo'
943 943 $ echo bar > bar
944 944 $ hg add bar
945 945 $ hg commit -m 'add bar'
946 946 $ hg co "tip^"
947 947 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
948 948 (leaving bookmark @)
949 949 $ hg book add-foo
950 950 $ hg book -r tip add-bar
951 951 Note: this push *must* push only a single changeset, as that's the point
952 952 of this test.
953 953 $ hg push -B add-foo --traceback
954 954 pushing to http://localhost:$HGPORT/
955 955 searching for changes
956 956 remote: adding changesets
957 957 remote: adding manifests
958 958 remote: adding file changes
959 959 remote: added 1 changesets with 1 changes to 1 files
960 960 exporting bookmark add-foo
961 961
962 962 pushing a new bookmark on a new head does not require -f if -B is specified
963 963
964 964 $ hg up -q X
965 965 $ hg book W
966 966 $ echo c5 > f2
967 967 $ hg ci -Am5
968 968 created new head
969 969 $ hg push -B .
970 970 pushing to http://localhost:$HGPORT/
971 971 searching for changes
972 972 remote: adding changesets
973 973 remote: adding manifests
974 974 remote: adding file changes
975 975 remote: added 1 changesets with 1 changes to 1 files (+1 heads)
976 976 exporting bookmark W
977 977 $ hg -R ../b id -r W
978 978 cc978a373a53 tip W
979 979
980 980 pushing an existing but divergent bookmark with -B still requires -f
981 981
982 982 $ hg clone -q . ../r
983 983 $ hg up -q X
984 984 $ echo 1 > f2
985 985 $ hg ci -qAml
986 986
987 987 $ cd ../r
988 988 $ hg up -q X
989 989 $ echo 2 > f2
990 990 $ hg ci -qAmr
991 991 $ hg push -B X
992 992 pushing to $TESTTMP/addmarks
993 993 searching for changes
994 994 remote has heads on branch 'default' that are not known locally: a2a606d9ff1b
995 995 abort: push creates new remote head 54694f811df9 with bookmark 'X'!
996 996 (pull and merge or see 'hg help push' for details about pushing new heads)
997 997 [255]
998 998 $ cd ../addmarks
999 999
1000 1000 Check summary output for incoming/outgoing bookmarks
1001 1001
1002 1002 $ hg bookmarks -d X
1003 1003 $ hg bookmarks -d Y
1004 1004 $ hg summary --remote | grep '^remote:'
1005 1005 remote: *, 2 incoming bookmarks, 1 outgoing bookmarks (glob)
1006 1006
1007 1007 $ cd ..
1008 1008
1009 1009 pushing an unchanged bookmark should result in no changes
1010 1010
1011 1011 $ hg init unchanged-a
1012 1012 $ hg init unchanged-b
1013 1013 $ cd unchanged-a
1014 1014 $ echo initial > foo
1015 1015 $ hg commit -A -m initial
1016 1016 adding foo
1017 1017 $ hg bookmark @
1018 1018 $ hg push -B @ ../unchanged-b
1019 1019 pushing to ../unchanged-b
1020 1020 searching for changes
1021 1021 adding changesets
1022 1022 adding manifests
1023 1023 adding file changes
1024 1024 added 1 changesets with 1 changes to 1 files
1025 1025 exporting bookmark @
1026 1026
1027 1027 $ hg push -B @ ../unchanged-b
1028 1028 pushing to ../unchanged-b
1029 1029 searching for changes
1030 1030 no changes found
1031 1031 [1]
1032 1032
1033 1033 Pushing a really long bookmark should work fine (issue5165)
1034 1034 ===============================================
1035 1035
1036 1036 #if b2-binary
1037 >>> open('longname', 'w').write('wat' * 100)
1037 >>> with open('longname', 'w') as f:
1038 ... f.write('wat' * 100) and None
1038 1039 $ hg book `cat longname`
1039 1040 $ hg push -B `cat longname` ../unchanged-b
1040 1041 pushing to ../unchanged-b
1041 1042 searching for changes
1042 1043 no changes found
1043 1044 exporting bookmark (wat){100} (re)
1044 1045 [1]
1045 1046 $ hg -R ../unchanged-b book --delete `cat longname`
1046 1047
1047 1048 Test again but forcing bundle2 exchange to make sure that doesn't regress.
1048 1049
1049 1050 $ hg push -B `cat longname` ../unchanged-b --config devel.legacy.exchange=bundle1
1050 1051 pushing to ../unchanged-b
1051 1052 searching for changes
1052 1053 no changes found
1053 1054 exporting bookmark (wat){100} (re)
1054 1055 [1]
1055 1056 $ hg -R ../unchanged-b book --delete `cat longname`
1056 1057 $ hg book --delete `cat longname`
1057 1058 $ hg co @
1058 1059 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
1059 1060 (activating bookmark @)
1060 1061 #endif
1061 1062
1062 1063 Check hook preventing push (issue4455)
1063 1064 ======================================
1064 1065
1065 1066 $ hg bookmarks
1066 1067 * @ 0:55482a6fb4b1
1067 1068 $ hg log -G
1068 1069 @ 0:55482a6fb4b1 initial
1069 1070
1070 1071 $ hg init ../issue4455-dest
1071 1072 $ hg push ../issue4455-dest # changesets only
1072 1073 pushing to ../issue4455-dest
1073 1074 searching for changes
1074 1075 adding changesets
1075 1076 adding manifests
1076 1077 adding file changes
1077 1078 added 1 changesets with 1 changes to 1 files
1078 1079 $ cat >> .hg/hgrc << EOF
1079 1080 > [paths]
1080 1081 > local=../issue4455-dest/
1081 1082 > ssh=ssh://user@dummy/issue4455-dest
1082 1083 > http=http://localhost:$HGPORT/
1083 1084 > [ui]
1084 1085 > ssh=$PYTHON "$TESTDIR/dummyssh"
1085 1086 > EOF
1086 1087 $ cat >> ../issue4455-dest/.hg/hgrc << EOF
1087 1088 > [hooks]
1088 1089 > prepushkey=false
1089 1090 > [web]
1090 1091 > push_ssl = false
1091 1092 > allow_push = *
1092 1093 > EOF
1093 1094 $ killdaemons.py
1094 1095 $ hg serve -R ../issue4455-dest -p $HGPORT -d --pid-file=../issue4455.pid -E ../issue4455-error.log
1095 1096 $ cat ../issue4455.pid >> $DAEMON_PIDS
1096 1097
1097 1098 Local push
1098 1099 ----------
1099 1100
1100 1101 #if b2-pushkey
1101 1102
1102 1103 $ hg push -B @ local
1103 1104 pushing to $TESTTMP/issue4455-dest
1104 1105 searching for changes
1105 1106 no changes found
1106 1107 pushkey-abort: prepushkey hook exited with status 1
1107 1108 abort: exporting bookmark @ failed!
1108 1109 [255]
1109 1110
1110 1111 #endif
1111 1112 #if b2-binary
1112 1113
1113 1114 $ hg push -B @ local
1114 1115 pushing to $TESTTMP/issue4455-dest
1115 1116 searching for changes
1116 1117 no changes found
1117 1118 abort: prepushkey hook exited with status 1
1118 1119 [255]
1119 1120
1120 1121 #endif
1121 1122
1122 1123 $ hg -R ../issue4455-dest/ bookmarks
1123 1124 no bookmarks set
1124 1125
1125 1126 Using ssh
1126 1127 ---------
1127 1128
1128 1129 #if b2-pushkey
1129 1130
1130 1131 $ hg push -B @ ssh # bundle2+
1131 1132 pushing to ssh://user@dummy/issue4455-dest
1132 1133 searching for changes
1133 1134 no changes found
1134 1135 remote: pushkey-abort: prepushkey hook exited with status 1
1135 1136 abort: exporting bookmark @ failed!
1136 1137 [255]
1137 1138
1138 1139 $ hg -R ../issue4455-dest/ bookmarks
1139 1140 no bookmarks set
1140 1141
1141 1142 $ hg push -B @ ssh --config devel.legacy.exchange=bundle1
1142 1143 pushing to ssh://user@dummy/issue4455-dest
1143 1144 searching for changes
1144 1145 no changes found
1145 1146 remote: pushkey-abort: prepushkey hook exited with status 1
1146 1147 exporting bookmark @ failed!
1147 1148 [1]
1148 1149
1149 1150 #endif
1150 1151 #if b2-binary
1151 1152
1152 1153 $ hg push -B @ ssh # bundle2+
1153 1154 pushing to ssh://user@dummy/issue4455-dest
1154 1155 searching for changes
1155 1156 no changes found
1156 1157 remote: prepushkey hook exited with status 1
1157 1158 abort: push failed on remote
1158 1159 [255]
1159 1160
1160 1161 #endif
1161 1162
1162 1163 $ hg -R ../issue4455-dest/ bookmarks
1163 1164 no bookmarks set
1164 1165
1165 1166 Using http
1166 1167 ----------
1167 1168
1168 1169 #if b2-pushkey
1169 1170 $ hg push -B @ http # bundle2+
1170 1171 pushing to http://localhost:$HGPORT/
1171 1172 searching for changes
1172 1173 no changes found
1173 1174 remote: pushkey-abort: prepushkey hook exited with status 1
1174 1175 abort: exporting bookmark @ failed!
1175 1176 [255]
1176 1177
1177 1178 $ hg -R ../issue4455-dest/ bookmarks
1178 1179 no bookmarks set
1179 1180
1180 1181 $ hg push -B @ http --config devel.legacy.exchange=bundle1
1181 1182 pushing to http://localhost:$HGPORT/
1182 1183 searching for changes
1183 1184 no changes found
1184 1185 remote: pushkey-abort: prepushkey hook exited with status 1
1185 1186 exporting bookmark @ failed!
1186 1187 [1]
1187 1188
1188 1189 #endif
1189 1190
1190 1191 #if b2-binary
1191 1192
1192 1193 $ hg push -B @ ssh # bundle2+
1193 1194 pushing to ssh://user@dummy/issue4455-dest
1194 1195 searching for changes
1195 1196 no changes found
1196 1197 remote: prepushkey hook exited with status 1
1197 1198 abort: push failed on remote
1198 1199 [255]
1199 1200
1200 1201 #endif
1201 1202
1202 1203 $ hg -R ../issue4455-dest/ bookmarks
1203 1204 no bookmarks set
1204 1205
1205 1206 $ cd ..
1206 1207
1207 1208 Test that pre-pushkey compat for bookmark works as expected (issue5777)
1208 1209
1209 1210 $ cat << EOF >> $HGRCPATH
1210 1211 > [ui]
1211 1212 > ssh="$PYTHON" "$TESTDIR/dummyssh"
1212 1213 > [server]
1213 1214 > bookmarks-pushkey-compat = yes
1214 1215 > EOF
1215 1216
1216 1217 $ hg init server
1217 1218 $ echo foo > server/a
1218 1219 $ hg -R server book foo
1219 1220 $ hg -R server commit -Am a
1220 1221 adding a
1221 1222 $ hg clone ssh://user@dummy/server client
1222 1223 requesting all changes
1223 1224 adding changesets
1224 1225 adding manifests
1225 1226 adding file changes
1226 1227 added 1 changesets with 1 changes to 1 files
1227 1228 new changesets 79513d0d7716
1228 1229 updating to branch default
1229 1230 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1230 1231
1231 1232 Forbid bookmark move on the server
1232 1233
1233 1234 $ cat << EOF >> $TESTDIR/no-bm-move.sh
1234 1235 > #!/bin/sh
1235 1236 > echo \$HG_NAMESPACE | grep -v bookmarks
1236 1237 > EOF
1237 1238 $ cat << EOF >> server/.hg/hgrc
1238 1239 > [hooks]
1239 1240 > prepushkey.no-bm-move= sh $TESTDIR/no-bm-move.sh
1240 1241 > EOF
1241 1242
1242 1243 pushing changeset is okay
1243 1244
1244 1245 $ echo bar >> client/a
1245 1246 $ hg -R client commit -m b
1246 1247 $ hg -R client push
1247 1248 pushing to ssh://user@dummy/server
1248 1249 searching for changes
1249 1250 remote: adding changesets
1250 1251 remote: adding manifests
1251 1252 remote: adding file changes
1252 1253 remote: added 1 changesets with 1 changes to 1 files
1253 1254
1254 1255 attempt to move the bookmark is rejected
1255 1256
1256 1257 $ hg -R client book foo -r .
1257 1258 moving bookmark 'foo' forward from 79513d0d7716
1258 1259
1259 1260 #if b2-pushkey
1260 1261 $ hg -R client push
1261 1262 pushing to ssh://user@dummy/server
1262 1263 searching for changes
1263 1264 no changes found
1264 1265 remote: pushkey-abort: prepushkey.no-bm-move hook exited with status 1
1265 1266 abort: updating bookmark foo failed!
1266 1267 [255]
1267 1268 #endif
1268 1269 #if b2-binary
1269 1270 $ hg -R client push
1270 1271 pushing to ssh://user@dummy/server
1271 1272 searching for changes
1272 1273 no changes found
1273 1274 remote: prepushkey.no-bm-move hook exited with status 1
1274 1275 abort: push failed on remote
1275 1276 [255]
1276 1277 #endif
General Comments 0
You need to be logged in to leave comments. Login now