##// END OF EJS Templates
tests: add criss cross merging tests whose behavior need to be fixed...
marmoute -
r46037:9bd60ec6 default
parent child Browse files
Show More
@@ -469,3 +469,225 b' Verify that the old context ancestor wor'
469 469 getting d2/b
470 470 1 files updated, 0 files merged, 2 files removed, 0 files unresolved
471 471 (branch merge, don't forget to commit)
472
473
474 Check that removal reversion does not go unotified
475 ==================================================
476
477 On a merge, a file can be removed and user can revert that removal. This means
478 user has made an explicit choice of keeping the file or reverting the removal
479 even though the merge algo wanted to remove it.
480 Based on this, when we do criss cross merges, merge algorithm should not again
481 choose to remove the file as in one of the merges, user made an explicit choice
482 to revert the removal.
483 Following test cases demonstrate how merge algo does not take in account
484 explicit choices made by users to revert the removal and on criss-cross merging
485 removes the file again.
486
487 "Simple" case where the filenode changes
488 ----------------------------------------
489
490 $ cd ..
491 $ hg init criss-cross-merge-reversal-with-update
492 $ cd criss-cross-merge-reversal-with-update
493 $ echo the-file > the-file
494 $ echo other-file > other-file
495 $ hg add the-file other-file
496 $ hg ci -m 'root-commit'
497 $ echo foo >> the-file
498 $ echo bar >> other-file
499 $ hg ci -m 'updating-both-file'
500 $ hg up 'desc("root-commit")'
501 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
502 $ hg rm the-file
503 $ hg ci -m 'delete-the-file'
504 created new head
505 $ hg log -G -T '{node|short} {desc}\n'
506 @ 7801bc9b9899 delete-the-file
507 |
508 | o 9b610631ab29 updating-both-file
509 |/
510 o 955800955977 root-commit
511
512
513 Do all the merge combination (from the deleted or the update side × keeping and deleting the file
514
515 $ hg update 'desc("delete-the-file")'
516 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
517 $ hg merge 'desc("updating-both-file")' -t :local
518 1 files updated, 1 files merged, 0 files removed, 0 files unresolved
519 (branch merge, don't forget to commit)
520 $ hg ci -m "merge-deleting-the-file-from-deleted"
521 $ hg manifest
522 other-file
523
524 $ hg update 'desc("updating-both-file")'
525 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
526 $ hg merge 'desc("delete-the-file")' -t :other
527 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
528 (branch merge, don't forget to commit)
529 $ hg ci -m "merge-deleting-the-file-from-updated"
530 created new head
531 $ hg manifest
532 other-file
533
534 $ hg update 'desc("delete-the-file")'
535 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
536 $ hg merge 'desc("updating-both-file")' -t :other
537 1 files updated, 1 files merged, 0 files removed, 0 files unresolved
538 (branch merge, don't forget to commit)
539 $ hg ci -m "merge-keeping-the-file-from-deleted"
540 created new head
541 $ hg manifest
542 other-file
543 the-file
544
545 $ hg update 'desc("updating-both-file")'
546 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
547 $ hg merge 'desc("delete-the-file")' -t :local
548 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
549 (branch merge, don't forget to commit)
550 $ hg ci -m "merge-keeping-the-file-from-updated"
551 created new head
552 $ hg manifest
553 other-file
554 the-file
555
556 There the resulting merge together (leading to criss cross situation). Check
557 the conflict is properly detected.
558
559 (merging two deletion together → no conflict)
560
561 $ hg update --clean 'desc("merge-deleting-the-file-from-deleted")'
562 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
563 $ hg merge 'desc("merge-deleting-the-file-from-updated")'
564 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
565 (branch merge, don't forget to commit)
566 $ ls -1
567 other-file
568
569 (merging a deletion with keeping conflict)
570 BROKEN: this should result in conflict
571
572 $ hg update --clean 'desc("merge-deleting-the-file-from-deleted")'
573 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
574 $ hg merge 'desc("merge-keeping-the-file-from-deleted")'
575 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
576 (branch merge, don't forget to commit)
577 $ ls -1
578 other-file
579 the-file
580
581 (merging a deletion with keeping → conflict)
582 BROKEN: this should result in conflict
583
584 $ hg update --clean 'desc("merge-deleting-the-file-from-deleted")'
585 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
586 $ hg merge 'desc("merge-keeping-the-file-from-updated")'
587 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
588 (branch merge, don't forget to commit)
589 $ ls -1
590 other-file
591 the-file
592
593 (merging two deletion together no conflict)
594
595 $ hg update --clean 'desc("merge-deleting-the-file-from-updated")'
596 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
597 $ hg merge 'desc("merge-deleting-the-file-from-deleted")'
598 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
599 (branch merge, don't forget to commit)
600 $ ls -1
601 other-file
602
603 (merging a deletion with keeping → conflict)
604 BROKEN: this should result in conflict
605
606 $ hg update --clean 'desc("merge-deleting-the-file-from-updated")'
607 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
608 $ hg merge 'desc("merge-keeping-the-file-from-deleted")'
609 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
610 (branch merge, don't forget to commit)
611 $ ls -1
612 other-file
613 the-file
614
615 (merging a deletion with keeping conflict)
616 BROKEN: this should result in conflict
617
618 $ hg update --clean 'desc("merge-deleting-the-file-from-updated")'
619 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
620 $ hg merge 'desc("merge-keeping-the-file-from-updated")'
621 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
622 (branch merge, don't forget to commit)
623 $ ls -1
624 other-file
625 the-file
626
627 (merging two "keeping" together → no conflict)
628
629 $ hg update --clean 'desc("merge-keeping-the-file-from-updated")'
630 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
631 $ hg merge 'desc("merge-keeping-the-file-from-deleted")'
632 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
633 (branch merge, don't forget to commit)
634 $ ls -1
635 other-file
636 the-file
637
638 (merging a deletion with keeping conflict)
639 BROKEN: this should result in conflict
640
641 $ hg update --clean 'desc("merge-keeping-the-file-from-updated")'
642 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
643 $ hg merge 'desc("merge-deleted-the-file-from-deleted")'
644 abort: empty revision set
645 [255]
646 $ ls -1
647 other-file
648 the-file
649
650 (merging a deletion with keeping conflict)
651 BROKEN: this should result in conflict
652
653 $ hg update --clean 'desc("merge-keeping-the-file-from-updated")'
654 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
655 $ hg merge 'desc("merge-deleting-the-file-from-updated")'
656 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
657 (branch merge, don't forget to commit)
658 $ ls -1
659 other-file
660
661 (merging two "keeping" together → no conflict)
662
663 $ hg update --clean 'desc("merge-keeping-the-file-from-deleted")'
664 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
665 $ hg merge 'desc("merge-keeping-the-file-from-updated")'
666 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
667 (branch merge, don't forget to commit)
668 $ ls -1
669 other-file
670 the-file
671
672 (merging a deletion with keeping conflict)
673 BROKEN: this should result in conflict
674
675 $ hg update --clean 'desc("merge-keeping-the-file-from-deleted")'
676 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
677 $ hg merge 'desc("merge-deleted-the-file-from-deleted")'
678 abort: empty revision set
679 [255]
680 $ ls -1
681 other-file
682 the-file
683
684 (merging a deletion with keeping conflict)
685 BROKEN: this should result in conflict
686
687 $ hg update --clean 'desc("merge-keeping-the-file-from-deleted")'
688 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
689 $ hg merge 'desc("merge-deleting-the-file-from-updated")'
690 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
691 (branch merge, don't forget to commit)
692 $ ls -1
693 other-file
General Comments 0
You need to be logged in to leave comments. Login now