tests/test-evolve-phase-divergence.t
changeset 4452 444e664616c7
parent 4448 ab5bc57ba897
child 4453 700b8b3a5a54
equal deleted inserted replaced
4451:a019067fea9e 4452:444e664616c7
    45 Setting up couple of more instances of private repo
    45 Setting up couple of more instances of private repo
    46 ---------------------------------------------------
    46 ---------------------------------------------------
    47 
    47 
    48   $ cp -a private alice
    48   $ cp -a private alice
    49   $ cp -a private bob
    49   $ cp -a private bob
       
    50   $ cp -a private split
       
    51   $ cp -a private split-across-branches
       
    52   $ cp -a private merge-no-conflict
    50 
    53 
    51 Creating a phase-divergence changeset
    54 Creating a phase-divergence changeset
    52 -------------------------------------
    55 -------------------------------------
    53 
    56 
    54 Alice creating a draft changeset and pushing to main private repo
    57 Alice creating a draft changeset and pushing to main private repo
   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