##// END OF EJS Templates
test-copies: introduce merge chaing test for the A/E + change tests...
marmoute -
r47301:664bee00 default
parent child Browse files
Show More
@@ -1027,6 +1027,89 b' When a non-rename change are merged with'
1027 o i-0 initial commit: a b h
1027 o i-0 initial commit: a b h
1028
1028
1029
1029
1030 Subcase: chaining conflicting rename resolution, with extra change during the merge
1031 ```````````````````````````````````````````````````````````````````````````````````
1032
1033 The "mEA-change-m-0" and "mAE-change-m-0" case create a rename tracking conflict on file 'f'. We
1034 add more change on the respective branch and merge again. These second merge
1035 does not involve the file 'f' and the arbitration done within "mAEm" and "mEA"
1036 about that file should stay unchanged.
1037
1038 $ case_desc="chained merges (conflict+change -> simple) - same content on both branch in the initial merge"
1039
1040
1041 (merge variant 1)
1042
1043 $ hg up 'desc("mAE-change-m")'
1044 2 files updated, 0 files merged, 3 files removed, 0 files unresolved
1045 $ hg merge 'desc("k-1")'
1046 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1047 (branch merge, don't forget to commit)
1048 $ hg ci -m "mAE-change,Km: $case_desc"
1049
1050 (merge variant 2)
1051
1052 $ hg up 'desc("k-1")'
1053 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
1054
1055 $ hg merge 'desc("mAE-change-m")'
1056 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
1057 (branch merge, don't forget to commit)
1058 $ hg ci -m "mK,AE-change-m: $case_desc"
1059 created new head
1060
1061 (merge variant 3)
1062
1063 $ hg up 'desc("mEA-change-m")'
1064 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
1065 $ hg merge 'desc("j-1")'
1066 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1067 (branch merge, don't forget to commit)
1068 $ hg ci -m "mEA-change,Jm: $case_desc"
1069
1070 (merge variant 4)
1071
1072 $ hg up 'desc("j-1")'
1073 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
1074 $ hg merge 'desc("mEA-change-m")'
1075 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
1076 (branch merge, don't forget to commit)
1077 $ hg ci -m "mJ,EA-change-m: $case_desc"
1078 created new head
1079
1080
1081 $ hg log -G --rev '::(desc("mAE-change,Km") + desc("mK,AE-change-m") + desc("mEA-change,Jm") + desc("mJ,EA-change-m"))'
1082 @ mJ,EA-change-m: chained merges (conflict+change -> simple) - same content on both branch in the initial merge
1083 |\
1084 +---o mEA-change,Jm: chained merges (conflict+change -> simple) - same content on both branch in the initial merge
1085 | |/
1086 | | o mK,AE-change-m: chained merges (conflict+change -> simple) - same content on both branch in the initial merge
1087 | | |\
1088 | | +---o mAE-change,Km: chained merges (conflict+change -> simple) - same content on both branch in the initial merge
1089 | | | |/
1090 | | | o k-1: unrelated changes (based on "e" changes)
1091 | | | |
1092 | o | | j-1: unrelated changes (based on the "a" series of changes)
1093 | | | |
1094 o-----+ mEA-change-m-0 merge with file update and copies info on both side - A side: rename d to f, E side: b to f, (same content for f in parent) - the other way
1095 |/ / /
1096 | o / mAE-change-m-0 merge with file update and copies info on both side - A side: rename d to f, E side: b to f, (same content for f in parent) - one way
1097 |/|/
1098 | o e-2 g -move-> f
1099 | |
1100 | o e-1 b -move-> g
1101 | |
1102 o | a-2: e -move-> f
1103 | |
1104 o | a-1: d -move-> e
1105 |/
1106 o i-2: c -move-> d
1107 |
1108 o i-1: a -move-> c
1109 |
1110 o i-0 initial commit: a b h
1111
1112
1030 Summary of all created cases
1113 Summary of all created cases
1031 ----------------------------
1114 ----------------------------
1032
1115
@@ -1055,6 +1138,7 b' Summary of all created cases'
1055 l-1: unrelated changes (based on "c" changes)
1138 l-1: unrelated changes (based on "c" changes)
1056 mABm-0 simple merge - A side: multiple renames, B side: unrelated update - the other way
1139 mABm-0 simple merge - A side: multiple renames, B side: unrelated update - the other way
1057 mAE,Km: chained merges (conflict -> simple) - same content everywhere
1140 mAE,Km: chained merges (conflict -> simple) - same content everywhere
1141 mAE-change,Km: chained merges (conflict+change -> simple) - same content on both branch in the initial merge
1058 mAE-change-m-0 merge with file update and copies info on both side - A side: rename d to f, E side: b to f, (same content for f in parent) - one way
1142 mAE-change-m-0 merge with file update and copies info on both side - A side: rename d to f, E side: b to f, (same content for f in parent) - one way
1059 mAEm-0 merge with copies info on both side - A side: rename d to f, E side: b to f, (same content for f) - one way
1143 mAEm-0 merge with copies info on both side - A side: rename d to f, E side: b to f, (same content for f) - one way
1060 mBAm-0 simple merge - A side: multiple renames, B side: unrelated update - one way
1144 mBAm-0 simple merge - A side: multiple renames, B side: unrelated update - one way
@@ -1073,6 +1157,7 b' Summary of all created cases'
1073 mDBm-0 simple merge - B side: unrelated update, D side: delete and recreate a file (with different content) - the other way
1157 mDBm-0 simple merge - B side: unrelated update, D side: delete and recreate a file (with different content) - the other way
1074 mDGm-0 actual content merge, copies on one side - D side: delete and re-add (different content), G side: update content - one way
1158 mDGm-0 actual content merge, copies on one side - D side: delete and re-add (different content), G side: update content - one way
1075 mEA,Jm: chained merges (conflict -> simple) - same content everywhere
1159 mEA,Jm: chained merges (conflict -> simple) - same content everywhere
1160 mEA-change,Jm: chained merges (conflict+change -> simple) - same content on both branch in the initial merge
1076 mEA-change-m-0 merge with file update and copies info on both side - A side: rename d to f, E side: b to f, (same content for f in parent) - the other way
1161 mEA-change-m-0 merge with file update and copies info on both side - A side: rename d to f, E side: b to f, (same content for f in parent) - the other way
1077 mEAm-0 merge with copies info on both side - A side: rename d to f, E side: b to f, (same content for f) - the other way
1162 mEAm-0 merge with copies info on both side - A side: rename d to f, E side: b to f, (same content for f) - the other way
1078 mFBm-0 simple merge - B side: unrelated change, F side: overwrite d with a copy (from h->i->d) - the other way
1163 mFBm-0 simple merge - B side: unrelated change, F side: overwrite d with a copy (from h->i->d) - the other way
@@ -1083,7 +1168,9 b' Summary of all created cases'
1083 mGF,Nm: chained merges (copy-overwrite -> simple) - same content
1168 mGF,Nm: chained merges (copy-overwrite -> simple) - same content
1084 mGFm-0 merge - G side: content change, F side: copy overwrite, no content change - the other way
1169 mGFm-0 merge - G side: content change, F side: copy overwrite, no content change - the other way
1085 mHC-delete-before-conflict-m-0 simple merge - C side: d is the results of renames then deleted, H side: d is result of another rename (same content as the other branch) - the other way
1170 mHC-delete-before-conflict-m-0 simple merge - C side: d is the results of renames then deleted, H side: d is result of another rename (same content as the other branch) - the other way
1171 mJ,EA-change-m: chained merges (conflict+change -> simple) - same content on both branch in the initial merge
1086 mJ,EAm: chained merges (conflict -> simple) - same content everywhere
1172 mJ,EAm: chained merges (conflict -> simple) - same content everywhere
1173 mK,AE-change-m: chained merges (conflict+change -> simple) - same content on both branch in the initial merge
1087 mK,AEm: chained merges (conflict -> simple) - same content everywhere
1174 mK,AEm: chained merges (conflict -> simple) - same content everywhere
1088 mL,BC+revertm: chained merges (salvaged -> simple) - same content (when the file exists)
1175 mL,BC+revertm: chained merges (salvaged -> simple) - same content (when the file exists)
1089 mL,CB+revertm: chained merges (salvaged -> simple) - same content (when the file exists)
1176 mL,CB+revertm: chained merges (salvaged -> simple) - same content (when the file exists)
@@ -1417,6 +1504,22 b' We upgrade a repository that is not usin'
1417 1 sidedata entries
1504 1 sidedata entries
1418 entry-0014 size 4
1505 entry-0014 size 4
1419 '\x00\x00\x00\x00'
1506 '\x00\x00\x00\x00'
1507 ##### revision "mAE-change,Km" #####
1508 1 sidedata entries
1509 entry-0014 size 4
1510 '\x00\x00\x00\x00'
1511 ##### revision "mK,AE-change-m" #####
1512 1 sidedata entries
1513 entry-0014 size 4
1514 '\x00\x00\x00\x00'
1515 ##### revision "mEA-change,Jm" #####
1516 1 sidedata entries
1517 entry-0014 size 4
1518 '\x00\x00\x00\x00'
1519 ##### revision "mJ,EA-change-m" #####
1520 1 sidedata entries
1521 entry-0014 size 4
1522 '\x00\x00\x00\x00'
1420
1523
1421 #endif
1524 #endif
1422
1525
@@ -2553,3 +2656,57 b' Chained output'
2553 a (missing-correct-output upgraded !)
2656 a (missing-correct-output upgraded !)
2554 h (known-bad-output sidedata !)
2657 h (known-bad-output sidedata !)
2555 h (known-bad-output upgraded !)
2658 h (known-bad-output upgraded !)
2659
2660
2661 Subcase: chaining conflicting rename resolution, with extra change during the merge
2662 ```````````````````````````````````````````````````````````````````````````````````
2663
2664 The "mAEm" and "mEAm" case create a rename tracking conflict on file 'f'. We
2665 add more change on the respective branch and merge again. These second merge
2666 does not involve the file 'f' and the arbitration done within "mAEm" and "mEA"
2667 about that file should stay unchanged.
2668
2669 The result from mAEm is the same for the subsequent merge:
2670
2671 $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mAE-change-m")' f
2672 A f
2673 a (filelog !)
2674 a (sidedata !)
2675 a (upgraded !)
2676
2677 $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mAE-change,Km")' f
2678 A f
2679 a (filelog !)
2680 a (sidedata !)
2681 a (upgraded !)
2682
2683 $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mK,AE-change-m")' f
2684 A f
2685 a (filelog !)
2686 a (missing-correct-output sidedata !)
2687 a (missing-correct-output upgraded !)
2688 b (known-bad-output sidedata !)
2689 b (known-bad-output upgraded !)
2690
2691
2692 The result from mEAm is the same for the subsequent merge:
2693
2694 $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mEA-change-m")' f
2695 A f
2696 a (filelog !)
2697 b (sidedata !)
2698 b (upgraded !)
2699
2700 $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mEA-change,Jm")' f
2701 A f
2702 a (filelog !)
2703 b (sidedata !)
2704 b (upgraded !)
2705
2706 $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mJ,EA-change-m")' f
2707 A f
2708 a (filelog !)
2709 b (missing-correct-output sidedata !)
2710 b (missing-correct-output upgraded !)
2711 a (known-bad-output sidedata !)
2712 a (known-bad-output upgraded !)
General Comments 0
You need to be logged in to leave comments. Login now