Show More
@@ -998,6 +998,105 b' about that file should stay unchanged.' | |||||
998 | o i-0 initial commit: a b h |
|
998 | o i-0 initial commit: a b h | |
999 |
|
999 | |||
1000 |
|
1000 | |||
|
1001 | Subcase: chaining conflicting rename resolution, with actual merging happening | |||
|
1002 | `````````````````````````````````````````````````````````````````````````````` | |||
|
1003 | ||||
|
1004 | The "mPQm" and "mQPm" case create a rename tracking conflict on file 't'. We | |||
|
1005 | add more change on the respective branch and merge again. These second merge | |||
|
1006 | does not involve the file 't' and the arbitration done within "mPQm" and "mQP" | |||
|
1007 | about that file should stay unchanged. | |||
|
1008 | ||||
|
1009 | $ case_desc="chained merges (conflict -> simple) - different content" | |||
|
1010 | ||||
|
1011 | (extra unrelated changes) | |||
|
1012 | ||||
|
1013 | $ hg up 'desc("p-2")' | |||
|
1014 | 3 files updated, 0 files merged, 3 files removed, 0 files unresolved | |||
|
1015 | $ echo s > unrelated-s | |||
|
1016 | $ hg add unrelated-s | |||
|
1017 | $ hg ci -m 's-1: unrelated changes (based on the "p" series of changes)' | |||
|
1018 | created new head | |||
|
1019 | ||||
|
1020 | $ hg up 'desc("q-2")' | |||
|
1021 | 2 files updated, 0 files merged, 2 files removed, 0 files unresolved | |||
|
1022 | $ echo t > unrelated-t | |||
|
1023 | $ hg add unrelated-t | |||
|
1024 | $ hg ci -m 't-1: unrelated changes (based on "q" changes)' | |||
|
1025 | created new head | |||
|
1026 | ||||
|
1027 | (merge variant 1) | |||
|
1028 | ||||
|
1029 | $ hg up 'desc("mPQm")' | |||
|
1030 | 1 files updated, 0 files merged, 2 files removed, 0 files unresolved | |||
|
1031 | $ hg merge 'desc("t-1")' | |||
|
1032 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
1033 | (branch merge, don't forget to commit) | |||
|
1034 | $ hg ci -m "mPQ,Tm: $case_desc" | |||
|
1035 | ||||
|
1036 | (merge variant 2) | |||
|
1037 | ||||
|
1038 | $ hg up 'desc("t-1")' | |||
|
1039 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
1040 | ||||
|
1041 | $ hg merge 'desc("mPQm")' | |||
|
1042 | 1 files updated, 0 files merged, 1 files removed, 0 files unresolved | |||
|
1043 | (branch merge, don't forget to commit) | |||
|
1044 | $ hg ci -m "mT,PQm: $case_desc" | |||
|
1045 | created new head | |||
|
1046 | ||||
|
1047 | (merge variant 3) | |||
|
1048 | ||||
|
1049 | $ hg up 'desc("mQPm")' | |||
|
1050 | 1 files updated, 0 files merged, 1 files removed, 0 files unresolved | |||
|
1051 | $ hg merge 'desc("s-1")' | |||
|
1052 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
1053 | (branch merge, don't forget to commit) | |||
|
1054 | $ hg ci -m "mQP,Sm: $case_desc" | |||
|
1055 | ||||
|
1056 | (merge variant 4) | |||
|
1057 | ||||
|
1058 | $ hg up 'desc("s-1")' | |||
|
1059 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
1060 | $ hg merge 'desc("mQPm")' | |||
|
1061 | 1 files updated, 0 files merged, 1 files removed, 0 files unresolved | |||
|
1062 | (branch merge, don't forget to commit) | |||
|
1063 | $ hg ci -m "mS,QPm: $case_desc" | |||
|
1064 | created new head | |||
|
1065 | $ hg up null --quiet | |||
|
1066 | ||||
|
1067 | ||||
|
1068 | $ hg log -G --rev '::(desc("mPQ,Tm") + desc("mT,PQm") + desc("mQP,Sm") + desc("mS,QPm"))' | |||
|
1069 | o mS,QPm: chained merges (conflict -> simple) - different content | |||
|
1070 | |\ | |||
|
1071 | +---o mQP,Sm: chained merges (conflict -> simple) - different content | |||
|
1072 | | |/ | |||
|
1073 | | | o mT,PQm: chained merges (conflict -> simple) - different content | |||
|
1074 | | | |\ | |||
|
1075 | | | +---o mPQ,Tm: chained merges (conflict -> simple) - different content | |||
|
1076 | | | | |/ | |||
|
1077 | | | | o t-1: unrelated changes (based on "q" changes) | |||
|
1078 | | | | | | |||
|
1079 | | o | | s-1: unrelated changes (based on the "p" series of changes) | |||
|
1080 | | | | | | |||
|
1081 | o-----+ mQPm-0 merge with copies info on both side - P side: rename t to v, Q side: r to v, (different content) - the other way | |||
|
1082 | |/ / / | |||
|
1083 | | o / mPQm-0 merge with copies info on both side - P side: rename t to v, Q side: r to v, (different content) - one way | |||
|
1084 | |/|/ | |||
|
1085 | | o q-2 w -move-> v | |||
|
1086 | | | | |||
|
1087 | | o q-1 r -move-> w | |||
|
1088 | | | | |||
|
1089 | o | p-2: u -move-> v | |||
|
1090 | | | | |||
|
1091 | o | p-1: t -move-> u | |||
|
1092 | |/ | |||
|
1093 | o i-2: c -move-> d, s -move-> t | |||
|
1094 | | | |||
|
1095 | o i-1: a -move-> c, p -move-> s | |||
|
1096 | | | |||
|
1097 | o i-0 initial commit: a b h | |||
|
1098 | ||||
|
1099 | ||||
1001 | Subcase: chaining salvage information during a merge |
|
1100 | Subcase: chaining salvage information during a merge | |
1002 | ```````````````````````````````````````````````````` |
|
1101 | ```````````````````````````````````````````````````` | |
1003 |
|
1102 | |||
@@ -1009,7 +1108,7 b' should preserve the fact eh file was sal' | |||||
1009 | (creating the change) |
|
1108 | (creating the change) | |
1010 |
|
1109 | |||
1011 | $ hg up 'desc("c-1")' |
|
1110 | $ hg up 'desc("c-1")' | |
1012 |
|
|
1111 | 5 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
1013 | $ echo l > unrelated-l |
|
1112 | $ echo l > unrelated-l | |
1014 | $ hg add unrelated-l |
|
1113 | $ hg add unrelated-l | |
1015 | $ hg ci -m 'l-1: unrelated changes (based on "c" changes)' |
|
1114 | $ hg ci -m 'l-1: unrelated changes (based on "c" changes)' | |
@@ -1327,9 +1426,13 b' Summary of all created cases' | |||||
1327 | mL,CB+revertm: chained merges (salvaged -> simple) - same content (when the file exists) |
|
1426 | mL,CB+revertm: chained merges (salvaged -> simple) - same content (when the file exists) | |
1328 | mN,GFm: chained merges (copy-overwrite -> simple) - same content |
|
1427 | mN,GFm: chained merges (copy-overwrite -> simple) - same content | |
1329 | mO,FGm: chained merges (copy-overwrite -> simple) - same content |
|
1428 | mO,FGm: chained merges (copy-overwrite -> simple) - same content | |
|
1429 | mPQ,Tm: chained merges (conflict -> simple) - different content | |||
1330 | mPQm-0 merge with copies info on both side - P side: rename t to v, Q side: r to v, (different content) - one way |
|
1430 | mPQm-0 merge with copies info on both side - P side: rename t to v, Q side: r to v, (different content) - one way | |
|
1431 | mQP,Sm: chained merges (conflict -> simple) - different content | |||
1331 | mQPm-0 merge with copies info on both side - P side: rename t to v, Q side: r to v, (different content) - the other way |
|
1432 | mQPm-0 merge with copies info on both side - P side: rename t to v, Q side: r to v, (different content) - the other way | |
1332 | mRBm-0 simple merge - B side: unrelated change, R side: overwrite d with a copy (from r->x->t) different content - the other way |
|
1433 | mRBm-0 simple merge - B side: unrelated change, R side: overwrite d with a copy (from r->x->t) different content - the other way | |
|
1434 | mS,QPm: chained merges (conflict -> simple) - different content | |||
|
1435 | mT,PQm: chained merges (conflict -> simple) - different content | |||
1333 | n-1: unrelated changes (based on the "f" series of changes) |
|
1436 | n-1: unrelated changes (based on the "f" series of changes) | |
1334 | o-1: unrelated changes (based on "g" changes) |
|
1437 | o-1: unrelated changes (based on "g" changes) | |
1335 | p-1: t -move-> u |
|
1438 | p-1: t -move-> u | |
@@ -1338,6 +1441,8 b' Summary of all created cases' | |||||
1338 | q-2 w -move-> v |
|
1441 | q-2 w -move-> v | |
1339 | r-1: rename r -> x |
|
1442 | r-1: rename r -> x | |
1340 | r-2: rename t -> x |
|
1443 | r-2: rename t -> x | |
|
1444 | s-1: unrelated changes (based on the "p" series of changes) | |||
|
1445 | t-1: unrelated changes (based on "q" changes) | |||
1341 |
|
1446 | |||
1342 |
|
1447 | |||
1343 | Test that sidedata computations during upgrades are correct |
|
1448 | Test that sidedata computations during upgrades are correct | |
@@ -1681,6 +1786,32 b' We upgrade a repository that is not usin' | |||||
1681 | 1 sidedata entries |
|
1786 | 1 sidedata entries | |
1682 | entry-0014 size 4 |
|
1787 | entry-0014 size 4 | |
1683 | '\x00\x00\x00\x00' |
|
1788 | '\x00\x00\x00\x00' | |
|
1789 | ##### revision "s-1" ##### | |||
|
1790 | 1 sidedata entries | |||
|
1791 | entry-0014 size 24 | |||
|
1792 | '\x00\x00\x00\x01\x04\x00\x00\x00\x0b\x00\x00\x00\x00unrelated-s' | |||
|
1793 | added : unrelated-s, ; | |||
|
1794 | ##### revision "t-1" ##### | |||
|
1795 | 1 sidedata entries | |||
|
1796 | entry-0014 size 24 | |||
|
1797 | '\x00\x00\x00\x01\x04\x00\x00\x00\x0b\x00\x00\x00\x00unrelated-t' | |||
|
1798 | added : unrelated-t, ; | |||
|
1799 | ##### revision "mPQ,Tm" ##### | |||
|
1800 | 1 sidedata entries | |||
|
1801 | entry-0014 size 4 | |||
|
1802 | '\x00\x00\x00\x00' | |||
|
1803 | ##### revision "mT,PQm" ##### | |||
|
1804 | 1 sidedata entries | |||
|
1805 | entry-0014 size 4 | |||
|
1806 | '\x00\x00\x00\x00' | |||
|
1807 | ##### revision "mQP,Sm" ##### | |||
|
1808 | 1 sidedata entries | |||
|
1809 | entry-0014 size 4 | |||
|
1810 | '\x00\x00\x00\x00' | |||
|
1811 | ##### revision "mS,QPm" ##### | |||
|
1812 | 1 sidedata entries | |||
|
1813 | entry-0014 size 4 | |||
|
1814 | '\x00\x00\x00\x00' | |||
1684 | ##### revision "l-1" ##### |
|
1815 | ##### revision "l-1" ##### | |
1685 | 1 sidedata entries |
|
1816 | 1 sidedata entries | |
1686 | entry-0014 size 24 |
|
1817 | entry-0014 size 24 | |
@@ -3079,6 +3210,55 b' The result from mEAm is the same for the' | |||||
3079 | a (known-bad-output sidedata !) |
|
3210 | a (known-bad-output sidedata !) | |
3080 | a (known-bad-output upgraded !) |
|
3211 | a (known-bad-output upgraded !) | |
3081 |
|
3212 | |||
|
3213 | Subcase: chaining conflicting rename resolution | |||
|
3214 | ``````````````````````````````````````````````` | |||
|
3215 | ||||
|
3216 | The "mPQm" and "mQPm" case create a rename tracking conflict on file 'v'. We | |||
|
3217 | add more change on the respective branch and merge again. These second merge | |||
|
3218 | does not involve the file 'v' and the arbitration done within "mPQm" and "mQP" | |||
|
3219 | about that file should stay unchanged. | |||
|
3220 | ||||
|
3221 | The result from mPQm is the same for the subsequent merge: | |||
|
3222 | ||||
|
3223 | $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mPQm")' v | |||
|
3224 | A v | |||
|
3225 | r (filelog !) | |||
|
3226 | p (sidedata !) | |||
|
3227 | p (upgraded !) | |||
|
3228 | ||||
|
3229 | $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mPQ,Tm")' v | |||
|
3230 | A v | |||
|
3231 | r (filelog !) | |||
|
3232 | p (sidedata !) | |||
|
3233 | p (upgraded !) | |||
|
3234 | ||||
|
3235 | $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mT,PQm")' v | |||
|
3236 | A v | |||
|
3237 | r (filelog !) | |||
|
3238 | p (missing-correct-output sidedata !) | |||
|
3239 | p (missing-correct-output upgraded !) | |||
|
3240 | r (known-bad-output sidedata !) | |||
|
3241 | r (known-bad-output upgraded !) | |||
|
3242 | ||||
|
3243 | ||||
|
3244 | The result from mQPm is the same for the subsequent merge: | |||
|
3245 | ||||
|
3246 | $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mQPm")' v | |||
|
3247 | A v | |||
|
3248 | r (no-changeset no-compatibility !) | |||
|
3249 | ||||
|
3250 | $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mQP,Sm")' v | |||
|
3251 | A v | |||
|
3252 | r (no-changeset no-compatibility !) | |||
|
3253 | ||||
|
3254 | $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mS,QPm")' v | |||
|
3255 | A v | |||
|
3256 | r (filelog !) | |||
|
3257 | r (missing-correct-output sidedata !) | |||
|
3258 | r (missing-correct-output upgraded !) | |||
|
3259 | p (known-bad-output sidedata !) | |||
|
3260 | p (known-bad-output upgraded !) | |||
|
3261 | ||||
3082 |
|
3262 | |||
3083 | Subcase: chaining salvage information during a merge |
|
3263 | Subcase: chaining salvage information during a merge | |
3084 | ```````````````````````````````````````````````````` |
|
3264 | ```````````````````````````````````````````````````` |
General Comments 0
You need to be logged in to leave comments.
Login now