932 ~ |
935 ~ |
933 |
936 |
934 When the public changesets is splitted causing phase-divergence |
937 When the public changesets is splitted causing phase-divergence |
935 --------------------------------------------------------------- |
938 --------------------------------------------------------------- |
936 |
939 |
|
940 $ cd ../split |
|
941 |
937 $ echo m > m |
942 $ echo m > m |
938 $ echo n > n |
943 $ echo n > n |
939 $ hg ci -Aqm "added m and n" |
944 $ hg ci -Aqm "added m and n" |
940 |
945 |
941 $ hg glog -r 21ae52e414e6:: |
946 $ hg glog |
942 @ 26:849cee0a874b added m and n |
947 @ 1:a51bce62c219 added m and n |
943 | () draft |
948 | () draft |
944 o 23:428f7900a969 added g |
949 o 0:d3873e73d99e init |
945 | () public |
950 () public |
946 o 22:21ae52e414e6 added f |
|
947 | () public |
|
948 ~ |
|
949 |
951 |
950 $ hg prev |
952 $ hg prev |
951 0 files updated, 0 files merged, 2 files removed, 0 files unresolved |
953 0 files updated, 0 files merged, 2 files removed, 0 files unresolved |
952 [23] added g |
954 [0] init |
953 $ echo m > m |
955 $ echo m > m |
954 $ hg ci -Aqm "added m" |
956 $ hg ci -Aqm "added m" |
955 $ echo n > n |
957 $ echo n > n |
956 $ hg ci -Aqm "added n" |
958 $ hg ci -Aqm "added n" |
957 |
959 |
958 $ hg glog -r 428f7900a969:: |
960 $ hg glog |
959 @ 28:63ccb8ea7cae added n |
961 @ 3:e1154ec0206a added n |
960 | () draft |
962 | () draft |
961 o 27:f313e2b90e70 added m |
963 o 2:4f25cd9cd2bf added m |
962 | () draft |
964 | () draft |
963 | o 26:849cee0a874b added m and n |
965 | o 1:a51bce62c219 added m and n |
964 |/ () draft |
966 |/ () draft |
965 o 23:428f7900a969 added g |
967 o 0:d3873e73d99e init |
966 | () public |
968 () public |
967 ~ |
969 |
968 |
970 $ hg prune -r a51bce62c219 --succ 4f25cd9cd2bf --succ e1154ec0206a --split |
969 $ hg prune -r 849cee0a874b --succ f313e2b90e70 --succ 63ccb8ea7cae --split |
|
970 1 changesets pruned |
971 1 changesets pruned |
971 |
972 |
972 $ hg phase -r 849cee0a874b --hidden --public |
973 $ hg phase -r a51bce62c219 --hidden --public |
973 2 new phase-divergent changesets |
974 2 new phase-divergent changesets |
974 |
975 |
975 $ hg glog -r 428f7900a969:: |
976 $ hg glog |
976 @ 28:63ccb8ea7cae added n |
977 @ 3:e1154ec0206a added n |
977 | () draft |
978 | () draft |
978 * 27:f313e2b90e70 added m |
979 * 2:4f25cd9cd2bf added m |
979 | () draft |
980 | () draft |
980 | o 26:849cee0a874b added m and n |
981 | o 1:a51bce62c219 added m and n |
981 |/ () public |
982 |/ () public |
982 o 23:428f7900a969 added g |
983 o 0:d3873e73d99e init |
983 | () public |
984 () public |
984 ~ |
|
985 |
985 |
986 $ hg evolve --all --phase-divergent |
986 $ hg evolve --all --phase-divergent |
987 recreate:[27] added m |
987 recreate:[2] added m |
988 atop:[26] added m and n |
988 atop:[1] added m and n |
989 computing new diff |
989 computing new diff |
990 committed as 870e1c3eddc3 |
990 committed as 86419909e017 |
991 1 new orphan changesets |
991 1 new orphan changesets |
992 recreate:[28] added n |
992 recreate:[3] added n |
993 atop:[26] added m and n |
993 atop:[1] added m and n |
994 rebasing to destination parent: 428f7900a969 |
994 rebasing to destination parent: d3873e73d99e |
995 computing new diff |
995 computing new diff |
996 committed as 154b0179fb9b |
996 committed as 89ba615ea1ec |
997 working directory is now at 154b0179fb9b |
997 working directory is now at 89ba615ea1ec |
998 |
998 |
999 XXX: this is messy, we should solve things in better way |
999 XXX: this is messy, we should solve things in better way |
1000 $ hg glog -r 428f7900a969:: --hidden |
1000 $ hg glog --hidden |
1001 @ 31:154b0179fb9b phase-divergent update to 849cee0a874b: |
1001 @ 6:89ba615ea1ec phase-divergent update to a51bce62c219: |
1002 | () draft |
1002 | () draft |
1003 | x 30:1ebf33547a82 added n |
1003 | x 5:ee4af146c5cf added n |
1004 | | () draft |
1004 | | () draft |
1005 +---o 29:870e1c3eddc3 phase-divergent update to 849cee0a874b: |
1005 +---o 4:86419909e017 phase-divergent update to a51bce62c219: |
1006 | | () draft |
1006 | | () draft |
1007 | | x 28:63ccb8ea7cae added n |
1007 | | x 3:e1154ec0206a added n |
1008 | | | () draft |
1008 | | | () draft |
1009 | | x 27:f313e2b90e70 added m |
1009 | | x 2:4f25cd9cd2bf added m |
1010 | |/ () draft |
1010 | |/ () draft |
1011 o | 26:849cee0a874b added m and n |
1011 o | 1:a51bce62c219 added m and n |
1012 |/ () public |
1012 |/ () public |
1013 o 23:428f7900a969 added g |
1013 o 0:d3873e73d99e init |
1014 | () public |
1014 () public |
1015 ~ |
|
1016 |
1015 |
1017 XXX: not sure this is the correct |
1016 XXX: not sure this is the correct |
1018 $ hg exp 154b0179fb9b |
1017 $ hg exp 89ba615ea1ec |
1019 # HG changeset patch |
1018 # HG changeset patch |
1020 # User test |
1019 # User test |
1021 # Date 0 0 |
1020 # Date 0 0 |
1022 # Thu Jan 01 00:00:00 1970 +0000 |
1021 # Thu Jan 01 00:00:00 1970 +0000 |
1023 # Node ID 154b0179fb9b53d2f853d6ba04740bb3d7a5cabe |
1022 # Node ID 89ba615ea1ec3ba5b25db9f7897eb29712d7e5d6 |
1024 # Parent 849cee0a874be7c4e75dfacb5ad72aa5696951ba |
1023 # Parent a51bce62c219f024bc0ae0cc0e3957ee77d7cb46 |
1025 phase-divergent update to 849cee0a874b: |
1024 phase-divergent update to a51bce62c219: |
1026 |
1025 |
1027 added n |
1026 added n |
1028 |
1027 |
1029 diff -r 849cee0a874b -r 154b0179fb9b m |
1028 diff -r a51bce62c219 -r 89ba615ea1ec m |
1030 --- a/m Thu Jan 01 00:00:00 1970 +0000 |
1029 --- a/m Thu Jan 01 00:00:00 1970 +0000 |
1031 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 |
1030 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 |
1032 @@ -1,1 +0,0 @@ |
1031 @@ -1,1 +0,0 @@ |
1033 -m |
1032 -m |
1034 |
1033 |
1035 XXX: not sure this is correct |
1034 XXX: not sure this is correct |
1036 $ hg exp 870e1c3eddc3 |
1035 $ hg exp 86419909e017 |
1037 # HG changeset patch |
1036 # HG changeset patch |
1038 # User test |
1037 # User test |
1039 # Date 0 0 |
1038 # Date 0 0 |
1040 # Thu Jan 01 00:00:00 1970 +0000 |
1039 # Thu Jan 01 00:00:00 1970 +0000 |
1041 # Node ID 870e1c3eddc34cc475e8e13d2fe1934210c1937e |
1040 # Node ID 86419909e01787959aa6471aee605c6d604a3e0d |
1042 # Parent 849cee0a874be7c4e75dfacb5ad72aa5696951ba |
1041 # Parent a51bce62c219f024bc0ae0cc0e3957ee77d7cb46 |
1043 phase-divergent update to 849cee0a874b: |
1042 phase-divergent update to a51bce62c219: |
1044 |
1043 |
1045 added m |
1044 added m |
1046 |
1045 |
1047 diff -r 849cee0a874b -r 870e1c3eddc3 n |
1046 diff -r a51bce62c219 -r 86419909e017 n |
1048 --- a/n Thu Jan 01 00:00:00 1970 +0000 |
1047 --- a/n Thu Jan 01 00:00:00 1970 +0000 |
1049 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 |
1048 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 |
1050 @@ -1,1 +0,0 @@ |
1049 @@ -1,1 +0,0 @@ |
1051 -n |
1050 -n |
1052 |
1051 |
1053 When the public changeset is splitted across various branches |
1052 When the public changeset is splitted across various branches |
1054 -------------------------------------------------------------- |
1053 -------------------------------------------------------------- |
1055 |
1054 |
|
1055 $ cd ../split-across-branches |
|
1056 |
1056 $ echo p > p |
1057 $ echo p > p |
1057 $ echo q > q |
1058 $ echo q > q |
1058 $ hg ci -Aqm "added p and q" |
1059 $ hg ci -Aqm "added p and q" |
1059 |
1060 |
1060 $ hg prev |
1061 $ hg prev |
1061 0 files updated, 0 files merged, 2 files removed, 0 files unresolved |
1062 0 files updated, 0 files merged, 2 files removed, 0 files unresolved |
1062 [31] phase-divergent update to 849cee0a874b: |
1063 [0] init |
1063 $ echo p > p |
1064 $ echo p > p |
1064 $ hg ci -Aqm "added p" |
1065 $ hg ci -Aqm "added p" |
1065 $ hg prev |
1066 $ hg prev |
1066 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
1067 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
1067 [31] phase-divergent update to 849cee0a874b: |
1068 [0] init |
1068 $ echo q > q |
1069 $ echo q > q |
1069 $ hg ci -Aqm "added q" |
1070 $ hg ci -Aqm "added q" |
1070 |
1071 |
1071 $ hg glog -r 154b0179fb9b:: |
1072 $ hg glog |
1072 @ 34:e046341aa97c added q |
1073 @ 3:bb87595f9a77 added q |
1073 | () draft |
1074 | () draft |
1074 | o 33:6f8c250eecff added p |
1075 | o 2:a47263294745 added p |
1075 |/ () draft |
1076 |/ () draft |
1076 | o 32:8a70f55b2af3 added p and q |
1077 | o 1:90859808ece6 added p and q |
1077 |/ () draft |
1078 |/ () draft |
1078 o 31:154b0179fb9b phase-divergent update to 849cee0a874b: |
1079 o 0:d3873e73d99e init |
1079 | () draft |
1080 () public |
1080 ~ |
1081 |
1081 |
1082 $ hg prune -r 90859808ece6 --succ a47263294745 --succ bb87595f9a77 --split |
1082 $ hg prune -r 8a70f55b2af3 --succ 6f8c250eecff --succ e046341aa97c --split |
|
1083 1 changesets pruned |
1083 1 changesets pruned |
1084 |
1084 |
1085 $ hg phase -r 8a70f55b2af3 --public --hidden |
1085 $ hg phase -r 90859808ece6 --public --hidden |
1086 2 new phase-divergent changesets |
1086 2 new phase-divergent changesets |
1087 |
1087 |
1088 $ hg glog -r 154b0179fb9b:: |
1088 $ hg glog |
1089 @ 34:e046341aa97c added q |
1089 @ 3:bb87595f9a77 added q |
1090 | () draft |
1090 | () draft |
1091 | * 33:6f8c250eecff added p |
1091 | * 2:a47263294745 added p |
1092 |/ () draft |
1092 |/ () draft |
1093 | o 32:8a70f55b2af3 added p and q |
1093 | o 1:90859808ece6 added p and q |
1094 |/ () public |
1094 |/ () public |
1095 o 31:154b0179fb9b phase-divergent update to 849cee0a874b: |
1095 o 0:d3873e73d99e init |
1096 | () public |
1096 () public |
1097 ~ |
|
1098 |
1097 |
1099 $ hg evolve --list |
1098 $ hg evolve --list |
1100 6f8c250eecff: added p |
1099 a47263294745: added p |
1101 phase-divergent: 8a70f55b2af3 (immutable precursor) |
1100 phase-divergent: 90859808ece6 (immutable precursor) |
1102 |
1101 |
1103 e046341aa97c: added q |
1102 bb87595f9a77: added q |
1104 phase-divergent: 8a70f55b2af3 (immutable precursor) |
1103 phase-divergent: 90859808ece6 (immutable precursor) |
1105 |
1104 |
1106 $ hg evolve --all --phase-divergent |
1105 $ hg evolve --all --phase-divergent |
1107 recreate:[33] added p |
1106 recreate:[2] added p |
1108 atop:[32] added p and q |
1107 atop:[1] added p and q |
1109 computing new diff |
1108 computing new diff |
1110 committed as f3e41d89b3c5 |
1109 committed as 25875a9cb640 |
1111 recreate:[34] added q |
1110 recreate:[3] added q |
1112 atop:[32] added p and q |
1111 atop:[1] added p and q |
1113 computing new diff |
1112 computing new diff |
1114 committed as 605c306d4f87 |
1113 committed as 26f564f94bcc |
1115 working directory is now at 605c306d4f87 |
1114 working directory is now at 26f564f94bcc |
1116 |
1115 |
1117 $ hg glog -r 154b0179fb9b:: --hidden |
1116 $ hg glog --hidden |
1118 @ 36:605c306d4f87 phase-divergent update to 8a70f55b2af3: |
1117 @ 5:26f564f94bcc phase-divergent update to 90859808ece6: |
1119 | () draft |
1118 | () draft |
1120 | o 35:f3e41d89b3c5 phase-divergent update to 8a70f55b2af3: |
1119 | o 4:25875a9cb640 phase-divergent update to 90859808ece6: |
1121 |/ () draft |
1120 |/ () draft |
1122 | x 34:e046341aa97c added q |
1121 | x 3:bb87595f9a77 added q |
1123 | | () draft |
1122 | | () draft |
1124 | | x 33:6f8c250eecff added p |
1123 | | x 2:a47263294745 added p |
1125 | |/ () draft |
1124 | |/ () draft |
1126 o | 32:8a70f55b2af3 added p and q |
1125 o | 1:90859808ece6 added p and q |
1127 |/ () public |
1126 |/ () public |
1128 o 31:154b0179fb9b phase-divergent update to 849cee0a874b: |
1127 o 0:d3873e73d99e init |
1129 | () public |
1128 () public |
1130 ~ |
|
1131 |
1129 |
1132 XXX: not sure this is correct |
1130 XXX: not sure this is correct |
1133 $ hg exp 605c306d4f87 |
1131 $ hg exp 26f564f94bcc |
1134 # HG changeset patch |
1132 # HG changeset patch |
1135 # User test |
1133 # User test |
1136 # Date 0 0 |
1134 # Date 0 0 |
1137 # Thu Jan 01 00:00:00 1970 +0000 |
1135 # Thu Jan 01 00:00:00 1970 +0000 |
1138 # Node ID 605c306d4f87fccfdb5e7dd1c750b6d4f813defb |
1136 # Node ID 26f564f94bcc34e049eb112fd14ab1e5286f2325 |
1139 # Parent 8a70f55b2af35452916dc89401a5ecf6553646a5 |
1137 # Parent 90859808ece64c9ca64dd29992db42353c70f164 |
1140 phase-divergent update to 8a70f55b2af3: |
1138 phase-divergent update to 90859808ece6: |
1141 |
1139 |
1142 added q |
1140 added q |
1143 |
1141 |
1144 diff -r 8a70f55b2af3 -r 605c306d4f87 p |
1142 diff -r 90859808ece6 -r 26f564f94bcc p |
1145 --- a/p Thu Jan 01 00:00:00 1970 +0000 |
1143 --- a/p Thu Jan 01 00:00:00 1970 +0000 |
1146 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 |
1144 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 |
1147 @@ -1,1 +0,0 @@ |
1145 @@ -1,1 +0,0 @@ |
1148 -p |
1146 -p |
1149 |
1147 |
1150 XXX: not sure this is correct |
1148 XXX: not sure this is correct |
1151 $ hg exp f3e41d89b3c5 |
1149 $ hg exp 25875a9cb640 |
1152 # HG changeset patch |
1150 # HG changeset patch |
1153 # User test |
1151 # User test |
1154 # Date 0 0 |
1152 # Date 0 0 |
1155 # Thu Jan 01 00:00:00 1970 +0000 |
1153 # Thu Jan 01 00:00:00 1970 +0000 |
1156 # Node ID f3e41d89b3c5f6ee49ccc734045856d7b025f048 |
1154 # Node ID 25875a9cb6400973b846c94f6a80410067c2cb1f |
1157 # Parent 8a70f55b2af35452916dc89401a5ecf6553646a5 |
1155 # Parent 90859808ece64c9ca64dd29992db42353c70f164 |
1158 phase-divergent update to 8a70f55b2af3: |
1156 phase-divergent update to 90859808ece6: |
1159 |
1157 |
1160 added p |
1158 added p |
1161 |
1159 |
1162 diff -r 8a70f55b2af3 -r f3e41d89b3c5 q |
1160 diff -r 90859808ece6 -r 25875a9cb640 q |
1163 --- a/q Thu Jan 01 00:00:00 1970 +0000 |
1161 --- a/q Thu Jan 01 00:00:00 1970 +0000 |
1164 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 |
1162 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 |
1165 @@ -1,1 +0,0 @@ |
1163 @@ -1,1 +0,0 @@ |
1166 -q |
1164 -q |
1167 |
1165 |
1168 Testing the evolution of a phase-divergent merge with no conflicts |
1166 Testing the evolution of a phase-divergent merge with no conflicts |
1169 ------------------------------------------------------------------ |
1167 ------------------------------------------------------------------ |
1170 |
1168 |
1171 $ hg glog -r 154b0179fb9b:: |
1169 $ cd ../merge-no-conflict |
1172 @ 36:605c306d4f87 phase-divergent update to 8a70f55b2af3: |
|
1173 | () draft |
|
1174 | o 35:f3e41d89b3c5 phase-divergent update to 8a70f55b2af3: |
|
1175 |/ () draft |
|
1176 o 32:8a70f55b2af3 added p and q |
|
1177 | () public |
|
1178 o 31:154b0179fb9b phase-divergent update to 849cee0a874b: |
|
1179 | () public |
|
1180 ~ |
|
1181 |
1170 |
1182 $ echo h > h |
1171 $ echo h > h |
1183 $ hg ci -Aqm "added h" |
1172 $ hg ci -Aqm "added h" |
1184 $ hg prev |
1173 $ hg prev |
1185 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
1174 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
1186 [36] phase-divergent update to 8a70f55b2af3: |
1175 [0] init |
1187 $ echo i > i |
1176 $ echo i > i |
1188 $ hg ci -Aqm "added i" |
1177 $ hg ci -Aqm "added i" |
1189 $ hg merge -r ef8c23f37b55 |
1178 $ hg merge -r a53d182199c1 |
1190 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
1179 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
1191 (branch merge, don't forget to commit) |
1180 (branch merge, don't forget to commit) |
1192 $ hg ci -m "merge h and i" |
1181 $ hg ci -m "merge h and i" |
1193 |
1182 |
1194 $ hg glog -r 605c306d4f87:: |
1183 $ hg glog |
1195 @ 39:12ebe0d625d7 merge h and i |
1184 @ 3:205b2f5ecb7b merge h and i |
1196 |\ () draft |
1185 |\ () draft |
1197 | o 38:9bb561db4230 added i |
1186 | o 2:f0be5e638ecf added i |
1198 | | () draft |
1187 | | () draft |
1199 o | 37:ef8c23f37b55 added h |
1188 o | 1:a53d182199c1 added h |
1200 |/ () draft |
1189 |/ () draft |
1201 o 36:605c306d4f87 phase-divergent update to 8a70f55b2af3: |
1190 o 0:d3873e73d99e init |
1202 | () draft |
1191 () public |
1203 ~ |
1192 |
1204 |
1193 $ hg up a53d182199c1 |
1205 $ hg up ef8c23f37b55 |
|
1206 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
1194 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
1207 $ hg merge -r 9bb561db4230 |
1195 $ hg merge -r f0be5e638ecf |
1208 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
1196 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
1209 (branch merge, don't forget to commit) |
1197 (branch merge, don't forget to commit) |
1210 $ hg ci -m "merge h and i successor" |
1198 $ hg ci -m "merge h and i successor" |
1211 created new head |
1199 created new head |
1212 $ hg glog -r 605c306d4f87:: |
1200 $ hg glog |
1213 @ 40:d2aeda868461 merge h and i successor |
1201 @ 4:8d4acf488ab5 merge h and i successor |
1214 |\ () draft |
1202 |\ () draft |
1215 +---o 39:12ebe0d625d7 merge h and i |
1203 +---o 3:205b2f5ecb7b merge h and i |
1216 | |/ () draft |
1204 | |/ () draft |
1217 | o 38:9bb561db4230 added i |
1205 | o 2:f0be5e638ecf added i |
1218 | | () draft |
1206 | | () draft |
1219 o | 37:ef8c23f37b55 added h |
1207 o | 1:a53d182199c1 added h |
1220 |/ () draft |
1208 |/ () draft |
1221 o 36:605c306d4f87 phase-divergent update to 8a70f55b2af3: |
1209 o 0:d3873e73d99e init |
1222 | () draft |
1210 () public |
1223 ~ |
1211 |
1224 |
1212 $ hg prune -r 205b2f5ecb7b --succ . |
1225 $ hg prune -r 12ebe0d625d7 --succ . |
|
1226 1 changesets pruned |
1213 1 changesets pruned |
1227 |
1214 |
1228 $ hg phase 12ebe0d625d7 --hidden --public |
1215 $ hg phase 205b2f5ecb7b --hidden --public |
1229 1 new phase-divergent changesets |
1216 1 new phase-divergent changesets |
1230 |
1217 |
1231 Resolution of phase-divergent merge commit using `hg evolve` |
1218 Resolution of phase-divergent merge commit using `hg evolve` |
1232 |
1219 |
1233 XXX: we should handle phase-divergent merges |
1220 XXX: we should handle phase-divergent merges |
1234 $ hg evolve --phase-divergent |
1221 $ hg evolve --phase-divergent |
1235 skipping d2aeda868461 : we do not handle merge yet |
1222 skipping 8d4acf488ab5 : we do not handle merge yet |