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