##// END OF EJS Templates
py3: fix test-bookmarks-corner-case.t...
Pulkit Goyal -
r42623:5b217451 default
parent child Browse files
Show More
@@ -1,782 +1,783
1 1 test-abort-checkin.t
2 2 test-absorb-edit-lines.t
3 3 test-absorb-filefixupstate.py
4 4 test-absorb-phase.t
5 5 test-absorb-rename.t
6 6 test-absorb-strip.t
7 7 test-absorb-unfinished.t
8 8 test-absorb.t
9 9 test-acl.t
10 10 test-add.t
11 11 test-addremove-similar.t
12 12 test-addremove.t
13 13 test-alias.t
14 14 test-amend-subrepo.t
15 15 test-amend.t
16 16 test-ancestor.py
17 17 test-annotate.py
18 18 test-annotate.t
19 19 test-arbitraryfilectx.t
20 20 test-archive-symlinks.t
21 21 test-archive.t
22 22 test-atomictempfile.py
23 23 test-audit-path.t
24 24 test-audit-subrepo.t
25 25 test-automv.t
26 26 test-backout.t
27 27 test-backwards-remove.t
28 28 test-bad-extension.t
29 29 test-bad-pull.t
30 30 test-basic.t
31 31 test-batching.py
32 32 test-bdiff.py
33 33 test-bheads.t
34 34 test-bisect.t
35 35 test-bisect2.t
36 36 test-bisect3.t
37 37 test-blackbox.t
38 38 test-bookflow.t
39 test-bookmarks-corner-case.t
39 40 test-bookmarks-current.t
40 41 test-bookmarks-merge.t
41 42 test-bookmarks-pushpull.t
42 43 test-bookmarks-rebase.t
43 44 test-bookmarks-strip.t
44 45 test-bookmarks.t
45 46 test-branch-change.t
46 47 test-branch-option.t
47 48 test-branch-tag-confict.t
48 49 test-branches.t
49 50 test-bugzilla.t
50 51 test-bundle-phases.t
51 52 test-bundle-r.t
52 53 test-bundle-type.t
53 54 test-bundle-vs-outgoing.t
54 55 test-bundle.t
55 56 test-bundle2-exchange.t
56 57 test-bundle2-format.t
57 58 test-bundle2-multiple-changegroups.t
58 59 test-bundle2-pushback.t
59 60 test-bundle2-remote-changegroup.t
60 61 test-cache-abuse.t
61 62 test-cappedreader.py
62 63 test-casecollision-merge.t
63 64 test-casecollision.t
64 65 test-casefolding.t
65 66 test-cat.t
66 67 test-cbor.py
67 68 test-censor.t
68 69 test-changelog-exec.t
69 70 test-check-code.t
70 71 test-check-commit.t
71 72 test-check-config.t
72 73 test-check-execute.t
73 74 test-check-help.t
74 75 test-check-interfaces.py
75 76 test-check-module-imports.t
76 77 test-check-py3-compat.t
77 78 test-check-pyflakes.t
78 79 test-check-pylint.t
79 80 test-check-shbang.t
80 81 test-children.t
81 82 test-churn.t
82 83 test-clone-cgi.t
83 84 test-clone-pull-corruption.t
84 85 test-clone-r.t
85 86 test-clone-uncompressed.t
86 87 test-clone-update-order.t
87 88 test-clone.t
88 89 test-clonebundles.t
89 90 test-close-head.t
90 91 test-commandserver.t
91 92 test-commit-amend.t
92 93 test-commit-interactive-curses.t
93 94 test-commit-interactive.t
94 95 test-commit-multiple.t
95 96 test-commit-unresolved.t
96 97 test-commit.t
97 98 test-committer.t
98 99 test-completion.t
99 100 test-config-env.py
100 101 test-config.t
101 102 test-conflict.t
102 103 test-confused-revert.t
103 104 test-context-metadata.t
104 105 test-context.py
105 106 test-contrib-check-code.t
106 107 test-contrib-check-commit.t
107 108 test-contrib-dumprevlog.t
108 109 test-contrib-perf.t
109 110 test-contrib-relnotes.t
110 111 test-contrib-testparseutil.t
111 112 test-contrib.t
112 113 test-convert-authormap.t
113 114 test-convert-clonebranches.t
114 115 test-convert-cvs-branch.t
115 116 test-convert-cvs-detectmerge.t
116 117 test-convert-cvs-synthetic.t
117 118 test-convert-cvs.t
118 119 test-convert-cvsnt-mergepoints.t
119 120 test-convert-datesort.t
120 121 test-convert-filemap.t
121 122 test-convert-git.t
122 123 test-convert-hg-sink.t
123 124 test-convert-hg-source.t
124 125 test-convert-hg-startrev.t
125 126 test-convert-mtn.t
126 127 test-convert-splicemap.t
127 128 test-convert-svn-sink.t
128 129 test-convert-tagsbranch-topology.t
129 130 test-convert.t
130 131 test-copies-in-changeset.t
131 132 test-copies.t
132 133 test-copy-move-merge.t
133 134 test-copy.t
134 135 test-copytrace-heuristics.t
135 136 test-custom-filters.t
136 137 test-debugbuilddag.t
137 138 test-debugbundle.t
138 139 test-debugcommands.t
139 140 test-debugextensions.t
140 141 test-debugindexdot.t
141 142 test-debugrename.t
142 143 test-default-push.t
143 144 test-demandimport.py
144 145 test-devel-warnings.t
145 146 test-diff-antipatience.t
146 147 test-diff-binary-file.t
147 148 test-diff-change.t
148 149 test-diff-color.t
149 150 test-diff-copy-depth.t
150 151 test-diff-hashes.t
151 152 test-diff-ignore-whitespace.t
152 153 test-diff-indent-heuristic.t
153 154 test-diff-issue2761.t
154 155 test-diff-newlines.t
155 156 test-diff-reverse.t
156 157 test-diff-subdir.t
157 158 test-diff-unified.t
158 159 test-diff-upgrade.t
159 160 test-diffdir.t
160 161 test-diffstat.t
161 162 test-directaccess.t
162 163 test-dirstate-backup.t
163 164 test-dirstate-nonnormalset.t
164 165 test-dirstate-race.t
165 166 test-dirstate.t
166 167 test-dispatch.py
167 168 test-dispatch.t
168 169 test-doctest.py
169 170 test-double-merge.t
170 171 test-drawdag.t
171 172 test-duplicateoptions.py
172 173 test-editor-filename.t
173 174 test-empty-dir.t
174 175 test-empty-file.t
175 176 test-empty-group.t
176 177 test-empty.t
177 178 test-encode.t
178 179 test-encoding-align.t
179 180 test-encoding-func.py
180 181 test-encoding-textwrap.t
181 182 test-encoding.t
182 183 test-eol-add.t
183 184 test-eol-clone.t
184 185 test-eol-hook.t
185 186 test-eol-patch.t
186 187 test-eol-tag.t
187 188 test-eol-update.t
188 189 test-eol.t
189 190 test-eolfilename.t
190 191 test-excessive-merge.t
191 192 test-exchange-obsmarkers-case-A1.t
192 193 test-exchange-obsmarkers-case-A2.t
193 194 test-exchange-obsmarkers-case-A3.t
194 195 test-exchange-obsmarkers-case-A4.t
195 196 test-exchange-obsmarkers-case-A5.t
196 197 test-exchange-obsmarkers-case-A6.t
197 198 test-exchange-obsmarkers-case-A7.t
198 199 test-exchange-obsmarkers-case-B1.t
199 200 test-exchange-obsmarkers-case-B2.t
200 201 test-exchange-obsmarkers-case-B3.t
201 202 test-exchange-obsmarkers-case-B4.t
202 203 test-exchange-obsmarkers-case-B5.t
203 204 test-exchange-obsmarkers-case-B6.t
204 205 test-exchange-obsmarkers-case-B7.t
205 206 test-exchange-obsmarkers-case-C1.t
206 207 test-exchange-obsmarkers-case-C2.t
207 208 test-exchange-obsmarkers-case-C3.t
208 209 test-exchange-obsmarkers-case-C4.t
209 210 test-exchange-obsmarkers-case-D1.t
210 211 test-exchange-obsmarkers-case-D2.t
211 212 test-exchange-obsmarkers-case-D3.t
212 213 test-exchange-obsmarkers-case-D4.t
213 214 test-execute-bit.t
214 215 test-export.t
215 216 test-extdata.t
216 217 test-extdiff.t
217 218 test-extension-timing.t
218 219 test-extension.t
219 220 test-extensions-afterloaded.t
220 221 test-extensions-wrapfunction.py
221 222 test-extra-filelog-entry.t
222 223 test-fastannotate-corrupt.t
223 224 test-fastannotate-diffopts.t
224 225 test-fastannotate-hg.t
225 226 test-fastannotate-perfhack.t
226 227 test-fastannotate-protocol.t
227 228 test-fastannotate-renames.t
228 229 test-fastannotate-revmap.py
229 230 test-fastannotate.t
230 231 test-fetch.t
231 232 test-filebranch.t
232 233 test-filecache.py
233 234 test-filelog.py
234 235 test-fileset-generated.t
235 236 test-fileset.t
236 237 test-fix-metadata.t
237 238 test-fix-topology.t
238 239 test-fix.t
239 240 test-flagprocessor.t
240 241 test-flags.t
241 242 test-fncache.t
242 243 test-gendoc-da.t
243 244 test-gendoc-de.t
244 245 test-gendoc-el.t
245 246 test-gendoc-fr.t
246 247 test-gendoc-it.t
247 248 test-gendoc-ja.t
248 249 test-gendoc-pt_BR.t
249 250 test-gendoc-ro.t
250 251 test-gendoc-ru.t
251 252 test-gendoc-sv.t
252 253 test-gendoc-zh_CN.t
253 254 test-gendoc-zh_TW.t
254 255 test-gendoc.t
255 256 test-generaldelta.t
256 257 test-getbundle.t
257 258 test-git-export.t
258 259 test-githelp.t
259 260 test-globalopts.t
260 261 test-glog-beautifygraph.t
261 262 test-glog-topological.t
262 263 test-glog.t
263 264 test-gpg.t
264 265 test-graft.t
265 266 test-grep.t
266 267 test-hardlinks.t
267 268 test-help-hide.t
268 269 test-help.t
269 270 test-hg-parseurl.py
270 271 test-hghave.t
271 272 test-hgignore.t
272 273 test-hgk.t
273 274 test-hgrc.t
274 275 test-hgweb-annotate-whitespace.t
275 276 test-hgweb-auth.py
276 277 test-hgweb-bundle.t
277 278 test-hgweb-commands.t
278 279 test-hgweb-csp.t
279 280 test-hgweb-descend-empties.t
280 281 test-hgweb-diffs.t
281 282 test-hgweb-empty.t
282 283 test-hgweb-filelog.t
283 284 test-hgweb-json.t
284 285 test-hgweb-no-path-info.t
285 286 test-hgweb-no-request-uri.t
286 287 test-hgweb-non-interactive.t
287 288 test-hgweb-raw.t
288 289 test-hgweb-removed.t
289 290 test-hgweb-symrev.t
290 291 test-hgweb.t
291 292 test-hgwebdir-paths.py
292 293 test-hgwebdir.t
293 294 test-hgwebdirsym.t
294 295 test-histedit-arguments.t
295 296 test-histedit-base.t
296 297 test-histedit-bookmark-motion.t
297 298 test-histedit-commute.t
298 299 test-histedit-drop.t
299 300 test-histedit-edit.t
300 301 test-histedit-fold-non-commute.t
301 302 test-histedit-fold.t
302 303 test-histedit-merge-tools.t
303 304 test-histedit-no-backup.t
304 305 test-histedit-no-change.t
305 306 test-histedit-non-commute-abort.t
306 307 test-histedit-non-commute.t
307 308 test-histedit-obsolete.t
308 309 test-histedit-outgoing.t
309 310 test-histedit-templates.t
310 311 test-http-api-httpv2.t
311 312 test-http-api.t
312 313 test-http-bad-server.t
313 314 test-http-branchmap.t
314 315 test-http-bundle1.t
315 316 test-http-clone-r.t
316 317 test-http-permissions.t
317 318 test-http-protocol.t
318 319 test-http-proxy.t
319 320 test-http.t
320 321 test-https.t
321 322 test-hybridencode.py
322 323 test-i18n.t
323 324 test-identify.t
324 325 test-impexp-branch.t
325 326 test-import-bypass.t
326 327 test-import-context.t
327 328 test-import-eol.t
328 329 test-import-git.t
329 330 test-import-merge.t
330 331 test-import-unknown.t
331 332 test-import.t
332 333 test-imports-checker.t
333 334 test-incoming-outgoing.t
334 335 test-infinitepush-bundlestore.t
335 336 test-infinitepush-ci.t
336 337 test-infinitepush.t
337 338 test-inherit-mode.t
338 339 test-init.t
339 340 test-install.t
340 341 test-issue1089.t
341 342 test-issue1102.t
342 343 test-issue1175.t
343 344 test-issue1306.t
344 345 test-issue1438.t
345 346 test-issue1502.t
346 347 test-issue1802.t
347 348 test-issue1877.t
348 349 test-issue1993.t
349 350 test-issue2137.t
350 351 test-issue3084.t
351 352 test-issue4074.t
352 353 test-issue522.t
353 354 test-issue586.t
354 355 test-issue5979.t
355 356 test-issue612.t
356 357 test-issue619.t
357 358 test-issue660.t
358 359 test-issue672.t
359 360 test-issue842.t
360 361 test-journal-exists.t
361 362 test-journal-share.t
362 363 test-journal.t
363 364 test-keyword.t
364 365 test-known.t
365 366 test-largefiles-cache.t
366 367 test-largefiles-misc.t
367 368 test-largefiles-small-disk.t
368 369 test-largefiles-update.t
369 370 test-largefiles-wireproto.t
370 371 test-largefiles.t
371 372 test-lfconvert.t
372 373 test-lfs-bundle.t
373 374 test-lfs-largefiles.t
374 375 test-lfs-pointer.py
375 376 test-lfs-serve.t
376 377 test-lfs-test-server.t
377 378 test-lfs.t
378 379 test-linelog.py
379 380 test-linerange.py
380 381 test-locate.t
381 382 test-lock-badness.t
382 383 test-lock.py
383 384 test-log-exthook.t
384 385 test-log-linerange.t
385 386 test-log.t
386 387 test-logexchange.t
387 388 test-logtoprocess.t
388 389 test-lrucachedict.py
389 390 test-mactext.t
390 391 test-mailmap.t
391 392 test-manifest-merging.t
392 393 test-manifest.py
393 394 test-manifest.t
394 395 test-match.py
395 396 test-mdiff.py
396 397 test-merge-changedelete.t
397 398 test-merge-closedheads.t
398 399 test-merge-commit.t
399 400 test-merge-criss-cross.t
400 401 test-merge-default.t
401 402 test-merge-force.t
402 403 test-merge-halt.t
403 404 test-merge-internal-tools-pattern.t
404 405 test-merge-local.t
405 406 test-merge-no-file-change.t
406 407 test-merge-remove.t
407 408 test-merge-revert.t
408 409 test-merge-revert2.t
409 410 test-merge-subrepos.t
410 411 test-merge-symlinks.t
411 412 test-merge-tools.t
412 413 test-merge-types.t
413 414 test-merge1.t
414 415 test-merge10.t
415 416 test-merge2.t
416 417 test-merge4.t
417 418 test-merge5.t
418 419 test-merge6.t
419 420 test-merge7.t
420 421 test-merge8.t
421 422 test-merge9.t
422 423 test-minifileset.py
423 424 test-minirst.py
424 425 test-missing-capability.t
425 426 test-mq-eol.t
426 427 test-mq-git.t
427 428 test-mq-guards.t
428 429 test-mq-header-date.t
429 430 test-mq-header-from.t
430 431 test-mq-merge.t
431 432 test-mq-missingfiles.t
432 433 test-mq-pull-from-bundle.t
433 434 test-mq-qclone-http.t
434 435 test-mq-qdelete.t
435 436 test-mq-qdiff.t
436 437 test-mq-qfold.t
437 438 test-mq-qgoto.t
438 439 test-mq-qimport-fail-cleanup.t
439 440 test-mq-qimport.t
440 441 test-mq-qnew.t
441 442 test-mq-qpush-exact.t
442 443 test-mq-qpush-fail.t
443 444 test-mq-qqueue.t
444 445 test-mq-qrefresh-interactive.t
445 446 test-mq-qrefresh-replace-log-message.t
446 447 test-mq-qrefresh.t
447 448 test-mq-qrename.t
448 449 test-mq-qsave.t
449 450 test-mq-safety.t
450 451 test-mq-subrepo-svn.t
451 452 test-mq-subrepo.t
452 453 test-mq-symlinks.t
453 454 test-mq.t
454 455 test-mv-cp-st-diff.t
455 456 test-narrow-acl.t
456 457 test-narrow-archive.t
457 458 test-narrow-clone-no-ellipsis.t
458 459 test-narrow-clone-non-narrow-server.t
459 460 test-narrow-clone-nonlinear.t
460 461 test-narrow-clone-stream.t
461 462 test-narrow-clone.t
462 463 test-narrow-commit.t
463 464 test-narrow-copies.t
464 465 test-narrow-debugcommands.t
465 466 test-narrow-debugrebuilddirstate.t
466 467 test-narrow-exchange-merges.t
467 468 test-narrow-exchange.t
468 469 test-narrow-expanddirstate.t
469 470 test-narrow-merge.t
470 471 test-narrow-patch.t
471 472 test-narrow-patterns.t
472 473 test-narrow-pull.t
473 474 test-narrow-rebase.t
474 475 test-narrow-shallow-merges.t
475 476 test-narrow-shallow.t
476 477 test-narrow-share.t
477 478 test-narrow-sparse.t
478 479 test-narrow-strip.t
479 480 test-narrow-trackedcmd.t
480 481 test-narrow-update.t
481 482 test-narrow-widen-no-ellipsis.t
482 483 test-narrow-widen.t
483 484 test-narrow.t
484 485 test-nested-repo.t
485 486 test-newbranch.t
486 487 test-newcgi.t
487 488 test-newercgi.t
488 489 test-nointerrupt.t
489 490 test-notify-changegroup.t
490 491 test-obshistory.t
491 492 test-obsmarker-template.t
492 493 test-obsmarkers-effectflag.t
493 494 test-obsolete-bounds-checking.t
494 495 test-obsolete-bundle-strip.t
495 496 test-obsolete-changeset-exchange.t
496 497 test-obsolete-checkheads.t
497 498 test-obsolete-distributed.t
498 499 test-obsolete-divergent.t
499 500 test-obsolete-tag-cache.t
500 501 test-obsolete.t
501 502 test-oldcgi.t
502 503 test-origbackup-conflict.t
503 504 test-pager-legacy.t
504 505 test-pager.t
505 506 test-parents.t
506 507 test-parse-date.t
507 508 test-parseindex.t
508 509 test-parseindex2.py
509 510 test-patch-offset.t
510 511 test-patch.t
511 512 test-patchbomb-bookmark.t
512 513 test-patchbomb-tls.t
513 514 test-patchbomb.t
514 515 test-pathconflicts-basic.t
515 516 test-pathconflicts-merge.t
516 517 test-pathconflicts-update.t
517 518 test-pathencode.py
518 519 test-pending.t
519 520 test-permissions.t
520 521 test-phabricator.t
521 522 test-phase-archived.t
522 523 test-phases-exchange.t
523 524 test-phases.t
524 525 test-profile.t
525 526 test-progress.t
526 527 test-propertycache.py
527 528 test-pull-branch.t
528 529 test-pull-bundle.t
529 530 test-pull-http.t
530 531 test-pull-permission.t
531 532 test-pull-pull-corruption.t
532 533 test-pull-r.t
533 534 test-pull-update.t
534 535 test-pull.t
535 536 test-purge.t
536 537 test-push-cgi.t
537 538 test-push-checkheads-partial-C1.t
538 539 test-push-checkheads-partial-C2.t
539 540 test-push-checkheads-partial-C3.t
540 541 test-push-checkheads-partial-C4.t
541 542 test-push-checkheads-pruned-B1.t
542 543 test-push-checkheads-pruned-B2.t
543 544 test-push-checkheads-pruned-B3.t
544 545 test-push-checkheads-pruned-B4.t
545 546 test-push-checkheads-pruned-B5.t
546 547 test-push-checkheads-pruned-B6.t
547 548 test-push-checkheads-pruned-B7.t
548 549 test-push-checkheads-pruned-B8.t
549 550 test-push-checkheads-superceed-A1.t
550 551 test-push-checkheads-superceed-A2.t
551 552 test-push-checkheads-superceed-A3.t
552 553 test-push-checkheads-superceed-A4.t
553 554 test-push-checkheads-superceed-A5.t
554 555 test-push-checkheads-superceed-A6.t
555 556 test-push-checkheads-superceed-A7.t
556 557 test-push-checkheads-superceed-A8.t
557 558 test-push-checkheads-unpushed-D1.t
558 559 test-push-checkheads-unpushed-D2.t
559 560 test-push-checkheads-unpushed-D3.t
560 561 test-push-checkheads-unpushed-D4.t
561 562 test-push-checkheads-unpushed-D5.t
562 563 test-push-checkheads-unpushed-D6.t
563 564 test-push-checkheads-unpushed-D7.t
564 565 test-push-http.t
565 566 test-push-race.t
566 567 test-push-warn.t
567 568 test-push.t
568 569 test-pushvars.t
569 570 test-qrecord.t
570 571 test-rebase-abort.t
571 572 test-rebase-backup.t
572 573 test-rebase-base-flag.t
573 574 test-rebase-bookmarks.t
574 575 test-rebase-brute-force.t
575 576 test-rebase-cache.t
576 577 test-rebase-check-restore.t
577 578 test-rebase-collapse.t
578 579 test-rebase-conflicts.t
579 580 test-rebase-dest.t
580 581 test-rebase-detach.t
581 582 test-rebase-emptycommit.t
582 583 test-rebase-inmemory.t
583 584 test-rebase-interruptions.t
584 585 test-rebase-issue-noparam-single-rev.t
585 586 test-rebase-legacy.t
586 587 test-rebase-mq-skip.t
587 588 test-rebase-mq.t
588 589 test-rebase-named-branches.t
589 590 test-rebase-newancestor.t
590 591 test-rebase-obsolete.t
591 592 test-rebase-parameters.t
592 593 test-rebase-partial.t
593 594 test-rebase-pull.t
594 595 test-rebase-rename.t
595 596 test-rebase-scenario-global.t
596 597 test-rebase-templates.t
597 598 test-rebase-transaction.t
598 599 test-rebuildstate.t
599 600 test-record.t
600 601 test-releasenotes-formatting.t
601 602 test-releasenotes-merging.t
602 603 test-releasenotes-parsing.t
603 604 test-relink.t
604 605 test-remote-hidden.t
605 606 test-remotefilelog-bad-configs.t
606 607 test-remotefilelog-bgprefetch.t
607 608 test-remotefilelog-blame.t
608 609 test-remotefilelog-bundle2.t
609 610 test-remotefilelog-bundles.t
610 611 test-remotefilelog-cacheprocess.t
611 612 test-remotefilelog-clone-tree.t
612 613 test-remotefilelog-clone.t
613 614 test-remotefilelog-corrupt-cache.t
614 615 test-remotefilelog-datapack.py
615 616 test-remotefilelog-gc.t
616 617 test-remotefilelog-gcrepack.t
617 618 test-remotefilelog-histpack.py
618 619 test-remotefilelog-http.t
619 620 test-remotefilelog-keepset.t
620 621 test-remotefilelog-linknodes.t
621 622 test-remotefilelog-local.t
622 623 test-remotefilelog-log.t
623 624 test-remotefilelog-partial-shallow.t
624 625 test-remotefilelog-permissions.t
625 626 test-remotefilelog-prefetch.t
626 627 test-remotefilelog-pull-noshallow.t
627 628 test-remotefilelog-push-pull.t
628 629 test-remotefilelog-repack-fast.t
629 630 test-remotefilelog-repack.t
630 631 test-remotefilelog-share.t
631 632 test-remotefilelog-sparse.t
632 633 test-remotefilelog-tags.t
633 634 test-remotefilelog-wireproto.t
634 635 test-remove.t
635 636 test-removeemptydirs.t
636 637 test-rename-after-merge.t
637 638 test-rename-dir-merge.t
638 639 test-rename-merge1.t
639 640 test-rename-merge2.t
640 641 test-rename.t
641 642 test-repair-strip.t
642 643 test-repo-compengines.t
643 644 test-requires.t
644 645 test-resolve.t
645 646 test-revert-flags.t
646 647 test-revert-interactive.t
647 648 test-revert-unknown.t
648 649 test-revert.t
649 650 test-revisions.t
650 651 test-revlog-ancestry.py
651 652 test-revlog-group-emptyiter.t
652 653 test-revlog-mmapindex.t
653 654 test-revlog-packentry.t
654 655 test-revlog-raw.py
655 656 test-revlog-v2.t
656 657 test-revlog.t
657 658 test-revset-dirstate-parents.t
658 659 test-revset-legacy-lookup.t
659 660 test-revset-outgoing.t
660 661 test-revset.t
661 662 test-revset2.t
662 663 test-rollback.t
663 664 test-run-tests.py
664 665 test-run-tests.t
665 666 test-rust-ancestor.py
666 667 test-rust-discovery.py
667 668 test-schemes.t
668 669 test-serve.t
669 670 test-server-view.t
670 671 test-setdiscovery.t
671 672 test-share-bookmarks.t
672 673 test-share.t
673 674 test-shelve.t
674 675 test-shelve2.t
675 676 test-show-stack.t
676 677 test-show-work.t
677 678 test-show.t
678 679 test-simple-update.t
679 680 test-simplekeyvaluefile.py
680 681 test-simplemerge.py
681 682 test-single-head.t
682 683 test-sparse-clear.t
683 684 test-sparse-clone.t
684 685 test-sparse-import.t
685 686 test-sparse-merges.t
686 687 test-sparse-profiles.t
687 688 test-sparse-requirement.t
688 689 test-sparse-verbose-json.t
689 690 test-sparse.t
690 691 test-split.t
691 692 test-ssh-bundle1.t
692 693 test-ssh-clone-r.t
693 694 test-ssh-proto-unbundle.t
694 695 test-ssh-proto.t
695 696 test-ssh-repoerror.t
696 697 test-ssh.t
697 698 test-sshserver.py
698 699 test-stack.t
699 700 test-static-http.t
700 701 test-status-color.t
701 702 test-status-inprocess.py
702 703 test-status-rev.t
703 704 test-status-terse.t
704 705 test-status.t
705 706 test-storage.py
706 707 test-stream-bundle-v2.t
707 708 test-strict.t
708 709 test-strip-cross.t
709 710 test-strip.t
710 711 test-subrepo-deep-nested-change.t
711 712 test-subrepo-git.t
712 713 test-subrepo-missing.t
713 714 test-subrepo-paths.t
714 715 test-subrepo-recursion.t
715 716 test-subrepo-relative-path.t
716 717 test-subrepo-svn.t
717 718 test-subrepo.t
718 719 test-symlink-os-yes-fs-no.py
719 720 test-symlink-placeholder.t
720 721 test-symlinks.t
721 722 test-tag.t
722 723 test-tags.t
723 724 test-template-basic.t
724 725 test-template-functions.t
725 726 test-template-keywords.t
726 727 test-template-map.t
727 728 test-tools.t
728 729 test-transplant.t
729 730 test-treediscovery-legacy.t
730 731 test-treediscovery.t
731 732 test-treemanifest.t
732 733 test-trusted.py
733 734 test-ui-color.py
734 735 test-ui-config.py
735 736 test-ui-verbosity.py
736 737 test-unamend.t
737 738 test-unbundlehash.t
738 739 test-uncommit.t
739 740 test-unified-test.t
740 741 test-unionrepo.t
741 742 test-unrelated-pull.t
742 743 test-up-local-change.t
743 744 test-update-atomic.t
744 745 test-update-branches.t
745 746 test-update-dest.t
746 747 test-update-issue1456.t
747 748 test-update-names.t
748 749 test-update-reverse.t
749 750 test-upgrade-repo.t
750 751 test-url-download.t
751 752 test-url-rev.t
752 753 test-url.py
753 754 test-username-newline.t
754 755 test-util.py
755 756 test-verify.t
756 757 test-walk.t
757 758 test-walkrepo.py
758 759 test-websub.t
759 760 test-win32text.t
760 761 test-wireproto-caching.t
761 762 test-wireproto-clientreactor.py
762 763 test-wireproto-command-branchmap.t
763 764 test-wireproto-command-capabilities.t
764 765 test-wireproto-command-changesetdata.t
765 766 test-wireproto-command-filedata.t
766 767 test-wireproto-command-filesdata.t
767 768 test-wireproto-command-heads.t
768 769 test-wireproto-command-known.t
769 770 test-wireproto-command-listkeys.t
770 771 test-wireproto-command-lookup.t
771 772 test-wireproto-command-manifestdata.t
772 773 test-wireproto-command-pushkey.t
773 774 test-wireproto-command-rawstorefiledata.t
774 775 test-wireproto-content-redirects.t
775 776 test-wireproto-exchangev2.t
776 777 test-wireproto-framing.py
777 778 test-wireproto-serverreactor.py
778 779 test-wireproto.py
779 780 test-wireproto.t
780 781 test-worker.t
781 782 test-wsgirequest.py
782 783 test-xdg.t
@@ -1,238 +1,238
1 1 ================================
2 2 Test corner case around bookmark
3 3 ================================
4 4
5 5 This test file is meant to gather test around bookmark that are specific
6 6 enough to not find a place elsewhere.
7 7
8 8 Test bookmark/changelog race condition
9 9 ======================================
10 10
11 11 The data from the bookmark file are filtered to only contains bookmark with
12 12 node known to the changelog. If the cache invalidation between these two bits
13 13 goes wrong, bookmark can be dropped.
14 14
15 15 global setup
16 16 ------------
17 17
18 18 $ cat >> $HGRCPATH << EOF
19 19 > [ui]
20 20 > ssh = "$PYTHON" "$TESTDIR/dummyssh"
21 21 > [server]
22 22 > concurrent-push-mode=check-related
23 23 > EOF
24 24
25 25 Setup
26 26 -----
27 27
28 28 initial repository setup
29 29
30 30 $ hg init bookrace-server
31 31 $ cd bookrace-server
32 32 $ echo a > a
33 33 $ hg add a
34 34 $ hg commit -m root
35 35 $ echo a >> a
36 36 $ hg bookmark book-A
37 37 $ hg commit -m A0
38 38 $ hg up 'desc(root)'
39 39 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
40 40 (leaving bookmark book-A)
41 41 $ echo b > b
42 42 $ hg add b
43 43 $ hg bookmark book-B
44 44 $ hg commit -m B0
45 45 created new head
46 46 $ hg up null
47 47 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
48 48 (leaving bookmark book-B)
49 49 $ hg phase --public --rev 'all()'
50 50 $ hg log -G
51 51 o changeset: 2:c79985706978
52 52 | bookmark: book-B
53 53 | tag: tip
54 54 | parent: 0:6569b5a81c7e
55 55 | user: test
56 56 | date: Thu Jan 01 00:00:00 1970 +0000
57 57 | summary: B0
58 58 |
59 59 | o changeset: 1:39c28d785860
60 60 |/ bookmark: book-A
61 61 | user: test
62 62 | date: Thu Jan 01 00:00:00 1970 +0000
63 63 | summary: A0
64 64 |
65 65 o changeset: 0:6569b5a81c7e
66 66 user: test
67 67 date: Thu Jan 01 00:00:00 1970 +0000
68 68 summary: root
69 69
70 70 $ hg book
71 71 book-A 1:39c28d785860
72 72 book-B 2:c79985706978
73 73 $ cd ..
74 74
75 75 Add new changeset on each bookmark in distinct clones
76 76
77 77 $ hg clone ssh://user@dummy/bookrace-server client-A
78 78 requesting all changes
79 79 adding changesets
80 80 adding manifests
81 81 adding file changes
82 82 added 3 changesets with 3 changes to 2 files (+1 heads)
83 83 new changesets 6569b5a81c7e:c79985706978
84 84 updating to branch default
85 85 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
86 86 $ hg -R client-A update book-A
87 87 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
88 88 (activating bookmark book-A)
89 89 $ echo a >> client-A/a
90 90 $ hg -R client-A commit -m A1
91 91 $ hg clone ssh://user@dummy/bookrace-server client-B
92 92 requesting all changes
93 93 adding changesets
94 94 adding manifests
95 95 adding file changes
96 96 added 3 changesets with 3 changes to 2 files (+1 heads)
97 97 new changesets 6569b5a81c7e:c79985706978
98 98 updating to branch default
99 99 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
100 100 $ hg -R client-B update book-B
101 101 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
102 102 (activating bookmark book-B)
103 103 $ echo b >> client-B/b
104 104 $ hg -R client-B commit -m B1
105 105
106 106 extension to reproduce the race
107 107 -------------------------------
108 108
109 109 If two process are pushing we want to make sure the following happens:
110 110
111 111 * process A read changelog
112 112 * process B to its full push
113 113 * process A read bookmarks
114 114 * process A proceed with rest of the push
115 115
116 116 We build a server side extension for this purpose
117 117
118 118 $ cat > bookrace.py << EOF
119 119 > import atexit
120 120 > import os
121 121 > import time
122 122 > from mercurial import bookmarks, error, extensions
123 123 > def wrapinit(orig, self, repo):
124 124 > if not os.path.exists('push-A-started'):
125 > print('setting raced push up')
125 > repo.ui.status(b'setting raced push up\n')
126 126 > with open('push-A-started', 'w'):
127 127 > pass
128 128 > clock = 300
129 129 > while not os.path.exists('push-B-done'):
130 130 > clock -= 1
131 131 > if clock <= 0:
132 132 > raise error.Abort("race scenario timed out")
133 133 > time.sleep(0.1)
134 134 > return orig(self, repo)
135 135 >
136 136 > repo.__class__ = racedrepo
137 137 > def uisetup(ui):
138 138 > extensions.wrapfunction(bookmarks.bmstore, '__init__', wrapinit)
139 139 > def e():
140 140 > with open('push-A-done', 'w'):
141 141 > pass
142 142 > atexit.register(e)
143 143 > EOF
144 144
145 145 Actual test
146 146 -----------
147 147
148 148 Start the raced push.
149 149
150 150 $ cat >> bookrace-server/.hg/hgrc << EOF
151 151 > [extensions]
152 152 > bookrace=$TESTTMP/bookrace.py
153 153 > EOF
154 154 $ hg push -R client-A -r book-A >push-output.txt 2>&1 &
155 155
156 156 Wait up to 30 seconds for that push to start.
157 157
158 158 $ clock=30
159 159 $ while [ ! -f push-A-started ] && [ $clock -gt 0 ] ; do
160 160 > clock=`expr $clock - 1`
161 161 > sleep 1
162 162 > done
163 163
164 164 Do the other push.
165 165
166 166 $ cat >> bookrace-server/.hg/hgrc << EOF
167 167 > [extensions]
168 168 > bookrace=!
169 169 > EOF
170 170
171 171 $ hg push -R client-B -r book-B
172 172 pushing to ssh://user@dummy/bookrace-server
173 173 searching for changes
174 174 remote: adding changesets
175 175 remote: adding manifests
176 176 remote: adding file changes
177 177 remote: added 1 changesets with 1 changes to 1 files
178 178 updating bookmark book-B
179 179
180 180 Signal the raced put that we are done (it waits up to 30 seconds).
181 181
182 182 $ touch push-B-done
183 183
184 184 Wait for the raced push to finish (with the remaning of the initial 30 seconds).
185 185
186 186 $ while [ ! -f push-A-done ] && [ $clock -gt 0 ] ; do
187 187 > clock=`expr $clock - 1`
188 188 > sleep 1
189 189 > done
190 190
191 191 Check raced push output.
192 192
193 193 $ cat push-output.txt
194 194 pushing to ssh://user@dummy/bookrace-server
195 195 searching for changes
196 196 remote: setting raced push up
197 197 remote: adding changesets
198 198 remote: adding manifests
199 199 remote: adding file changes
200 200 remote: added 1 changesets with 1 changes to 1 files
201 201 updating bookmark book-A
202 202
203 203 Check result of the push.
204 204
205 205 $ hg -R bookrace-server log -G
206 206 o changeset: 4:9ce3b28c16de
207 207 | bookmark: book-A
208 208 | tag: tip
209 209 | parent: 1:39c28d785860
210 210 | user: test
211 211 | date: Thu Jan 01 00:00:00 1970 +0000
212 212 | summary: A1
213 213 |
214 214 | o changeset: 3:f26c3b5167d1
215 215 | | bookmark: book-B
216 216 | | user: test
217 217 | | date: Thu Jan 01 00:00:00 1970 +0000
218 218 | | summary: B1
219 219 | |
220 220 | o changeset: 2:c79985706978
221 221 | | parent: 0:6569b5a81c7e
222 222 | | user: test
223 223 | | date: Thu Jan 01 00:00:00 1970 +0000
224 224 | | summary: B0
225 225 | |
226 226 o | changeset: 1:39c28d785860
227 227 |/ user: test
228 228 | date: Thu Jan 01 00:00:00 1970 +0000
229 229 | summary: A0
230 230 |
231 231 o changeset: 0:6569b5a81c7e
232 232 user: test
233 233 date: Thu Jan 01 00:00:00 1970 +0000
234 234 summary: root
235 235
236 236 $ hg -R bookrace-server book
237 237 book-A 4:9ce3b28c16de
238 238 book-B 3:f26c3b5167d1
General Comments 0
You need to be logged in to leave comments. Login now