comparison tests/test-merge-criss-cross.t @ 45587:768412472663

merge: store cases when a file is absent post merge in commitinfo Some merges can result in file being absent form working directory. This can be one of file was kept deleted or file was removed by merge code. User might revert the file back before committing. In such cases we will like to have better handling and create new filenodes. We store this info in mergestate as commitinfo so that we can use it while committing to create new filenode if required. Differential Revision: https://phab.mercurial-scm.org/D9003
author Pulkit Goyal <7895pulkit@gmail.com>
date Mon, 24 Aug 2020 15:35:34 +0530
parents 8c02c6262a5e
children ad984583969a
comparison
equal deleted inserted replaced
45586:8c02c6262a5e 45587:768412472663
680 local (working copy): adfd88e5d7d3d3e22bdd26512991ee64d59c1d8f 680 local (working copy): adfd88e5d7d3d3e22bdd26512991ee64d59c1d8f
681 other (merge rev): 38a4c3e7cac8c294ecb0a7a85a05464e9836ca78 681 other (merge rev): 38a4c3e7cac8c294ecb0a7a85a05464e9836ca78
682 extra: the-file (merge-removal-candidate = yes) 682 extra: the-file (merge-removal-candidate = yes)
683 #else 683 #else
684 $ hg debugmergestate 684 $ hg debugmergestate
685 no merge state found 685 local (working copy): adfd88e5d7d3d3e22bdd26512991ee64d59c1d8f
686 other (merge rev): e9b7081317232edce73f7ad5ae0b7807ff5c326a
687 extra: the-file (merge-removal-candidate = yes)
686 #endif 688 #endif
687 689
688 (merging a deletion with keeping → conflict) 690 (merging a deletion with keeping → conflict)
689 BROKEN: this should result in conflict 691 BROKEN: this should result in conflict
690 692
695 0 files updated, 0 files merged, 0 files removed, 0 files unresolved 697 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
696 (branch merge, don't forget to commit) 698 (branch merge, don't forget to commit)
697 $ ls -1 699 $ ls -1
698 other-file 700 other-file
699 $ hg debugmergestate 701 $ hg debugmergestate
700 no merge state found 702 local (working copy): adfd88e5d7d3d3e22bdd26512991ee64d59c1d8f
703 other (merge rev): 5e3eccec60d88f94a7ba57c351f32cb24c15fe0c
704 extra: the-file (merge-removal-candidate = yes)
701 705
702 (merging two deletion together → no conflict) 706 (merging two deletion together → no conflict)
703 707
704 $ hg update --clean 'desc("merge-deleting-the-file-from-updated")' 708 $ hg update --clean 'desc("merge-deleting-the-file-from-updated")'
705 0 files updated, 0 files merged, 0 files removed, 0 files unresolved 709 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
728 local (working copy): a4e0e44229dc130be2915b92c957c093f8c7ee3e 732 local (working copy): a4e0e44229dc130be2915b92c957c093f8c7ee3e
729 other (merge rev): 38a4c3e7cac8c294ecb0a7a85a05464e9836ca78 733 other (merge rev): 38a4c3e7cac8c294ecb0a7a85a05464e9836ca78
730 extra: the-file (merge-removal-candidate = yes) 734 extra: the-file (merge-removal-candidate = yes)
731 #else 735 #else
732 $ hg debugmergestate 736 $ hg debugmergestate
733 no merge state found 737 local (working copy): a4e0e44229dc130be2915b92c957c093f8c7ee3e
738 other (merge rev): e9b7081317232edce73f7ad5ae0b7807ff5c326a
739 extra: the-file (merge-removal-candidate = yes)
734 #endif 740 #endif
735 741
736 (merging a deletion with keeping → conflict) 742 (merging a deletion with keeping → conflict)
737 BROKEN: this should result in conflict 743 BROKEN: this should result in conflict
738 744
743 0 files updated, 0 files merged, 0 files removed, 0 files unresolved 749 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
744 (branch merge, don't forget to commit) 750 (branch merge, don't forget to commit)
745 $ ls -1 751 $ ls -1
746 other-file 752 other-file
747 $ hg debugmergestate 753 $ hg debugmergestate
748 no merge state found 754 local (working copy): a4e0e44229dc130be2915b92c957c093f8c7ee3e
755 other (merge rev): 5e3eccec60d88f94a7ba57c351f32cb24c15fe0c
756 extra: the-file (merge-removal-candidate = yes)
749 757
750 (merging two "keeping" together → no conflict) 758 (merging two "keeping" together → no conflict)
751 759
752 $ hg update --clean 'desc("merge-keeping-the-file-from-updated")' 760 $ hg update --clean 'desc("merge-keeping-the-file-from-updated")'
753 1 files updated, 0 files merged, 0 files removed, 0 files unresolved 761 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
793 (branch merge, don't forget to commit) 801 (branch merge, don't forget to commit)
794 $ ls -1 802 $ ls -1
795 other-file 803 other-file
796 the-file 804 the-file
797 $ hg debugmergestate 805 $ hg debugmergestate
798 no merge state found 806 local (working copy): 5e3eccec60d88f94a7ba57c351f32cb24c15fe0c
807 other (merge rev): a4e0e44229dc130be2915b92c957c093f8c7ee3e
808 extra: the-file (merge-removal-candidate = yes)
799 809
800 (merging two "keeping" together → no conflict) 810 (merging two "keeping" together → no conflict)
801 811
802 $ hg update --clean 'desc("merge-keeping-the-file-from-deleted")' 812 $ hg update --clean 'desc("merge-keeping-the-file-from-deleted")'
803 1 files updated, 0 files merged, 0 files removed, 0 files unresolved (newfilenode !) 813 1 files updated, 0 files merged, 0 files removed, 0 files unresolved (newfilenode !)
841 local (working copy): 38a4c3e7cac8c294ecb0a7a85a05464e9836ca78 851 local (working copy): 38a4c3e7cac8c294ecb0a7a85a05464e9836ca78
842 other (merge rev): a4e0e44229dc130be2915b92c957c093f8c7ee3e 852 other (merge rev): a4e0e44229dc130be2915b92c957c093f8c7ee3e
843 extra: the-file (merge-removal-candidate = yes) 853 extra: the-file (merge-removal-candidate = yes)
844 #else 854 #else
845 $ hg debugmergestate 855 $ hg debugmergestate
846 no merge state found 856 local (working copy): e9b7081317232edce73f7ad5ae0b7807ff5c326a
857 other (merge rev): a4e0e44229dc130be2915b92c957c093f8c7ee3e
858 extra: the-file (merge-removal-candidate = yes)
847 #endif 859 #endif