##// END OF EJS Templates
test-copies: introduce merge chains test for the P/Q merges...
marmoute -
r47308:388a9202 default
parent child Browse files
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 1 files updated, 0 files merged, 2 files removed, 0 files unresolved
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