comparison tests/test-merge-criss-cross.t @ 45619:e8078af6af30

merge: if CHANGED_DELETED and KEEP_NEW are actions, choose CHANGED_DELETED ACTION_KEEP_NEW and ACTION_CHANGED_DELETED are conflicting actions as one says that file is new while other says that file was present earlier and has changed-delete conflicts. Let's do changed-delete which will lead to conflicts and make user choose the right way.
author Pulkit Goyal <7895pulkit@gmail.com>
date Wed, 30 Sep 2020 18:07:21 +0530
parents 29c1d2401823
children 5a0b930cfb3e
comparison
equal deleted inserted replaced
45618:29c1d2401823 45619:e8078af6af30
853 the-file 853 the-file
854 $ hg debugmergestate 854 $ hg debugmergestate
855 no merge state found 855 no merge state found
856 856
857 (merging a deletion with keeping → conflict) 857 (merging a deletion with keeping → conflict)
858 BROKEN: this should result in conflict
859 858
860 $ hg update --clean 'desc("merge-keeping-the-file-from-deleted")' 859 $ hg update --clean 'desc("merge-keeping-the-file-from-deleted")'
861 0 files updated, 0 files merged, 0 files removed, 0 files unresolved 860 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
861 #if newfilenode
862 $ hg merge 'desc("merge-deleting-the-file-from-deleted")' 862 $ hg merge 'desc("merge-deleting-the-file-from-deleted")'
863 0 files updated, 0 files merged, 0 files removed, 0 files unresolved 863 file 'the-file' was deleted in other [merge rev] but was modified in local [working copy].
864 (branch merge, don't forget to commit) 864 You can use (c)hanged version, (d)elete, or leave (u)nresolved.
865 What do you want to do? u
866 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
867 use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon
868 [1]
869 #else
870 $ hg merge 'desc("merge-deleting-the-file-from-deleted")'
871 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
872 (branch merge, don't forget to commit)
873 #endif
865 $ ls -1 874 $ ls -1
866 other-file 875 other-file
867 the-file 876 the-file
877
878 #if newfilenode
868 $ hg debugmergestate 879 $ hg debugmergestate
869 local (working copy): 38a4c3e7cac8c294ecb0a7a85a05464e9836ca78 (newfilenode !) 880 local (working copy): 38a4c3e7cac8c294ecb0a7a85a05464e9836ca78 (newfilenode !)
870 local (working copy): e9b7081317232edce73f7ad5ae0b7807ff5c326a (old !) 881 local (working copy): e9b7081317232edce73f7ad5ae0b7807ff5c326a (old !)
871 other (merge rev): adfd88e5d7d3d3e22bdd26512991ee64d59c1d8f 882 other (merge rev): adfd88e5d7d3d3e22bdd26512991ee64d59c1d8f
883 file: the-file (state "u")
884 local path: the-file (hash 6d2e02da5a9fe0691363dc6b573845fa271eaa35, flags "")
885 ancestor path: the-file (node 59e363a07dc876278f0e41756236f30213b6b460)
886 other path: the-file (node 0000000000000000000000000000000000000000)
887 extra: ancestorlinknode = 9b610631ab29024c5f44af7d2c19658ef8f8f071
888 extra: merge-removal-candidate = yes
889 #else
890 $ hg debugmergestate
891 local (working copy): e9b7081317232edce73f7ad5ae0b7807ff5c326a
892 other (merge rev): adfd88e5d7d3d3e22bdd26512991ee64d59c1d8f
872 extra: the-file (merge-removal-candidate = yes) 893 extra: the-file (merge-removal-candidate = yes)
894 #endif
873 895
874 (merging a deletion with keeping → conflict) 896 (merging a deletion with keeping → conflict)
875 BROKEN: this should result in conflict
876 897
877 $ hg update --clean 'desc("merge-keeping-the-file-from-deleted")' 898 $ hg update --clean 'desc("merge-keeping-the-file-from-deleted")'
878 0 files updated, 0 files merged, 0 files removed, 0 files unresolved 899 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
900 #if newfilenode
879 $ hg merge 'desc("merge-deleting-the-file-from-updated")' 901 $ hg merge 'desc("merge-deleting-the-file-from-updated")'
880 0 files updated, 0 files merged, 0 files removed, 0 files unresolved 902 file 'the-file' was deleted in other [merge rev] but was modified in local [working copy].
881 (branch merge, don't forget to commit) 903 You can use (c)hanged version, (d)elete, or leave (u)nresolved.
904 What do you want to do? u
905 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
906 use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon
907 [1]
908 #else
909 $ hg merge 'desc("merge-deleting-the-file-from-updated")'
910 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
911 (branch merge, don't forget to commit)
912 #endif
882 $ ls -1 913 $ ls -1
883 other-file 914 other-file
884 the-file 915 the-file
885 #if newfilenode 916 #if newfilenode
886 $ hg debugmergestate 917 $ hg debugmergestate
887 local (working copy): 38a4c3e7cac8c294ecb0a7a85a05464e9836ca78 918 local (working copy): 38a4c3e7cac8c294ecb0a7a85a05464e9836ca78
888 other (merge rev): a4e0e44229dc130be2915b92c957c093f8c7ee3e 919 other (merge rev): a4e0e44229dc130be2915b92c957c093f8c7ee3e
889 extra: the-file (merge-removal-candidate = yes) 920 file: the-file (state "u")
921 local path: the-file (hash 6d2e02da5a9fe0691363dc6b573845fa271eaa35, flags "")
922 ancestor path: the-file (node 59e363a07dc876278f0e41756236f30213b6b460)
923 other path: the-file (node 0000000000000000000000000000000000000000)
924 extra: ancestorlinknode = 9b610631ab29024c5f44af7d2c19658ef8f8f071
925 extra: merge-removal-candidate = yes
890 #else 926 #else
891 $ hg debugmergestate 927 $ hg debugmergestate
892 local (working copy): e9b7081317232edce73f7ad5ae0b7807ff5c326a 928 local (working copy): e9b7081317232edce73f7ad5ae0b7807ff5c326a
893 other (merge rev): a4e0e44229dc130be2915b92c957c093f8c7ee3e 929 other (merge rev): a4e0e44229dc130be2915b92c957c093f8c7ee3e
894 extra: the-file (merge-removal-candidate = yes) 930 extra: the-file (merge-removal-candidate = yes)