comparison tests/test-merge-criss-cross.t @ 45479:09edbff6ae8d

merge: store ACTION_KEEP_ABSENT when we are keeping the file absent locally If a file is not present on the local side, and it's unchanged between other merge parent and ancestor, we don't use any action, neither we had a if-else branch for that condition. This leads to bid-merge missing that there is a such action possible which can be performed. As test changes demonstrate, we now choose the locally deleted side instead of choosing the remote one consistently. This is also wrong behavior which is resulted because of missing possible action. It will be fixed in next patch. This whole logic is not acurrate as we should prompt user on what to do when this kind of criss-cross merge is in play. Differential Revision: https://phab.mercurial-scm.org/D8940
author Pulkit Goyal <7895pulkit@gmail.com>
date Mon, 24 Aug 2020 15:20:09 +0530
parents 9bd60ec60601
children 49ffaa4f65f6
comparison
equal deleted inserted replaced
45478:bb9888d32601 45479:09edbff6ae8d
570 BROKEN: this should result in conflict 570 BROKEN: this should result in conflict
571 571
572 $ hg update --clean 'desc("merge-deleting-the-file-from-deleted")' 572 $ hg update --clean 'desc("merge-deleting-the-file-from-deleted")'
573 0 files updated, 0 files merged, 0 files removed, 0 files unresolved 573 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
574 $ hg merge 'desc("merge-keeping-the-file-from-deleted")' 574 $ hg merge 'desc("merge-keeping-the-file-from-deleted")'
575 1 files updated, 0 files merged, 0 files removed, 0 files unresolved 575 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
576 (branch merge, don't forget to commit) 576 (branch merge, don't forget to commit)
577 $ ls -1 577 $ ls -1
578 other-file 578 other-file
579 the-file
580 579
581 (merging a deletion with keeping → conflict) 580 (merging a deletion with keeping → conflict)
582 BROKEN: this should result in conflict 581 BROKEN: this should result in conflict
583 582
584 $ hg update --clean 'desc("merge-deleting-the-file-from-deleted")' 583 $ hg update --clean 'desc("merge-deleting-the-file-from-deleted")'
585 0 files updated, 0 files merged, 1 files removed, 0 files unresolved 584 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
586 $ hg merge 'desc("merge-keeping-the-file-from-updated")' 585 $ hg merge 'desc("merge-keeping-the-file-from-updated")'
587 1 files updated, 0 files merged, 0 files removed, 0 files unresolved 586 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
588 (branch merge, don't forget to commit) 587 (branch merge, don't forget to commit)
589 $ ls -1 588 $ ls -1
590 other-file 589 other-file
591 the-file
592 590
593 (merging two deletion together → no conflict) 591 (merging two deletion together → no conflict)
594 592
595 $ hg update --clean 'desc("merge-deleting-the-file-from-updated")' 593 $ hg update --clean 'desc("merge-deleting-the-file-from-updated")'
596 0 files updated, 0 files merged, 1 files removed, 0 files unresolved 594 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
597 $ hg merge 'desc("merge-deleting-the-file-from-deleted")' 595 $ hg merge 'desc("merge-deleting-the-file-from-deleted")'
598 0 files updated, 0 files merged, 0 files removed, 0 files unresolved 596 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
599 (branch merge, don't forget to commit) 597 (branch merge, don't forget to commit)
600 $ ls -1 598 $ ls -1
601 other-file 599 other-file
604 BROKEN: this should result in conflict 602 BROKEN: this should result in conflict
605 603
606 $ hg update --clean 'desc("merge-deleting-the-file-from-updated")' 604 $ hg update --clean 'desc("merge-deleting-the-file-from-updated")'
607 0 files updated, 0 files merged, 0 files removed, 0 files unresolved 605 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
608 $ hg merge 'desc("merge-keeping-the-file-from-deleted")' 606 $ hg merge 'desc("merge-keeping-the-file-from-deleted")'
609 1 files updated, 0 files merged, 0 files removed, 0 files unresolved 607 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
610 (branch merge, don't forget to commit) 608 (branch merge, don't forget to commit)
611 $ ls -1 609 $ ls -1
612 other-file 610 other-file
613 the-file
614 611
615 (merging a deletion with keeping → conflict) 612 (merging a deletion with keeping → conflict)
616 BROKEN: this should result in conflict 613 BROKEN: this should result in conflict
617 614
618 $ hg update --clean 'desc("merge-deleting-the-file-from-updated")' 615 $ hg update --clean 'desc("merge-deleting-the-file-from-updated")'
619 0 files updated, 0 files merged, 1 files removed, 0 files unresolved 616 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
620 $ hg merge 'desc("merge-keeping-the-file-from-updated")' 617 $ hg merge 'desc("merge-keeping-the-file-from-updated")'
621 1 files updated, 0 files merged, 0 files removed, 0 files unresolved 618 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
622 (branch merge, don't forget to commit) 619 (branch merge, don't forget to commit)
623 $ ls -1 620 $ ls -1
624 other-file 621 other-file
625 the-file
626 622
627 (merging two "keeping" together → no conflict) 623 (merging two "keeping" together → no conflict)
628 624
629 $ hg update --clean 'desc("merge-keeping-the-file-from-updated")' 625 $ hg update --clean 'desc("merge-keeping-the-file-from-updated")'
630 1 files updated, 0 files merged, 0 files removed, 0 files unresolved 626 1 files updated, 0 files merged, 0 files removed, 0 files unresolved