From a200bcf72838488c1550b1709a3f075f722e0244 Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Mon, 26 Oct 2015 17:25:42 -0400 Subject: [PATCH] merge: add a third-level recursive merge --- tests/merge/trees/recursive.c | 46 ++++++++++++++++++ .../00/7f1ee2af8e5d99906867c4237510e1790a89b8 | Bin 0 -> 169 bytes .../15/faa0c9991f2d65686e844651faa2ff9827887b | Bin 0 -> 665 bytes .../4d/fc1be85a9d6c9898152444d32b238b4aecf8cc | Bin 0 -> 168 bytes .../50/e4facaafb746cfed89287206274193c1417288 | Bin 0 -> 207 bytes .../5e/8747f5200fac0f945a07daf6163ca9cb1a8da9 | Bin 0 -> 672 bytes .../5f/18576d464946eb2338daeb8b4030019961f505 | Bin 0 -> 208 bytes .../ad/1ea02c2cc4f55c1dff87b80a086206a73885eb | Bin 0 -> 207 bytes .../ca/49d1a8b6116ffeba22667bba265fa5261df7ab | Bin 0 -> 208 bytes .../e1/dcfc3038be54195a59817c89782b261e46cb05 | Bin 0 -> 212 bytes .../f1/b44c04989a3a1c14b036cfadfa328d53a7bc5e | Bin 0 -> 672 bytes .../.gitted/refs/heads/branchD-1 | Bin 0 -> 41 bytes .../.gitted/refs/heads/branchD-2 | Bin 0 -> 41 bytes 13 files changed, 46 insertions(+) create mode 100644 tests/resources/merge-recursive/.gitted/objects/00/7f1ee2af8e5d99906867c4237510e1790a89b8 create mode 100644 tests/resources/merge-recursive/.gitted/objects/15/faa0c9991f2d65686e844651faa2ff9827887b create mode 100644 tests/resources/merge-recursive/.gitted/objects/4d/fc1be85a9d6c9898152444d32b238b4aecf8cc create mode 100644 tests/resources/merge-recursive/.gitted/objects/50/e4facaafb746cfed89287206274193c1417288 create mode 100644 tests/resources/merge-recursive/.gitted/objects/5e/8747f5200fac0f945a07daf6163ca9cb1a8da9 create mode 100644 tests/resources/merge-recursive/.gitted/objects/5f/18576d464946eb2338daeb8b4030019961f505 create mode 100644 tests/resources/merge-recursive/.gitted/objects/ad/1ea02c2cc4f55c1dff87b80a086206a73885eb create mode 100644 tests/resources/merge-recursive/.gitted/objects/ca/49d1a8b6116ffeba22667bba265fa5261df7ab create mode 100644 tests/resources/merge-recursive/.gitted/objects/e1/dcfc3038be54195a59817c89782b261e46cb05 create mode 100644 tests/resources/merge-recursive/.gitted/objects/f1/b44c04989a3a1c14b036cfadfa328d53a7bc5e create mode 100644 tests/resources/merge-recursive/.gitted/refs/heads/branchD-1 create mode 100644 tests/resources/merge-recursive/.gitted/refs/heads/branchD-2 diff --git a/tests/merge/trees/recursive.c b/tests/merge/trees/recursive.c index a7358e7e3..cd879677f 100644 --- a/tests/merge/trees/recursive.c +++ b/tests/merge/trees/recursive.c @@ -154,3 +154,49 @@ void test_merge_trees_recursive__three_norecursive(void) git_index_free(index); } +void test_merge_trees_recursive__four(void) +{ + git_index *index; + git_merge_options opts = GIT_MERGE_OPTIONS_INIT; + + struct merge_index_entry merge_index_entries[] = { + { 0100644, "ffb36e513f5fdf8a6ba850a20142676a2ac4807d", 0, "asparagus.txt" }, + { 0100644, "68f6182f4c85d39e1309d97c7e456156dc9c0096", 0, "beef.txt" }, + { 0100644, "4b7c5650008b2e747fe1809eeb5a1dde0e80850a", 0, "bouilli.txt" }, + { 0100644, "c4e6cca3ec6ae0148ed231f97257df8c311e015f", 0, "gravy.txt" }, + { 0100644, "68af1fc7407fd9addf1701a87eb1c95c7494c598", 0, "oyster.txt" }, + { 0100644, "d55e5dc038c52f1a36548625bcb666cbc06db9e6", 0, "veal.txt" }, + }; + + cl_git_pass(merge_commits_from_branches(&index, repo, "branchD-2", "branchD-1", &opts)); + + cl_assert(merge_test_index(index, merge_index_entries, 6)); + + git_index_free(index); +} + +void test_merge_trees_recursive__four_norecursive(void) +{ + git_index *index; + git_merge_options opts = GIT_MERGE_OPTIONS_INIT; + + struct merge_index_entry merge_index_entries[] = { + { 0100644, "ffb36e513f5fdf8a6ba850a20142676a2ac4807d", 0, "asparagus.txt" }, + { 0100644, "68f6182f4c85d39e1309d97c7e456156dc9c0096", 0, "beef.txt" }, + { 0100644, "4b7c5650008b2e747fe1809eeb5a1dde0e80850a", 0, "bouilli.txt" }, + { 0100644, "c4e6cca3ec6ae0148ed231f97257df8c311e015f", 0, "gravy.txt" }, + { 0100644, "68af1fc7407fd9addf1701a87eb1c95c7494c598", 0, "oyster.txt" }, + { 0100644, "898d12687fb35be271c27c795a6b32c8b51da79e", 1, "veal.txt" }, + { 0100644, "f1b44c04989a3a1c14b036cfadfa328d53a7bc5e", 2, "veal.txt" }, + { 0100644, "5e8747f5200fac0f945a07daf6163ca9cb1a8da9", 3, "veal.txt" }, + }; + + opts.flags |= GIT_MERGE_NO_RECURSIVE; + + cl_git_pass(merge_commits_from_branches(&index, repo, "branchD-2", "branchD-1", &opts)); + + cl_assert(merge_test_index(index, merge_index_entries, 8)); + + git_index_free(index); +} + diff --git a/tests/resources/merge-recursive/.gitted/objects/00/7f1ee2af8e5d99906867c4237510e1790a89b8 b/tests/resources/merge-recursive/.gitted/objects/00/7f1ee2af8e5d99906867c4237510e1790a89b8 new file mode 100644 index 0000000000000000000000000000000000000000..d9399d71c227358546c7b4c9f7a02f01b31fe31a GIT binary patch literal 169 zcmV;a09OBa0i{k!3IZ_@^gOS~2S&1VX8{pGJbLp3SvpJ(naCLN`$q8xLLF+OsMu;P zok@gU--sAyVbSOW8XRZ}QYo7}1si}X&V_SYWaK#A{YGnNBvQ;#ab*J`2!|e>6((9| ztPD~M0v*HX`)6O;#xCjQx5REstBRC0;FmvLd>Jj>|~U}8~$%7#e^ literal 0 HcmV?d00001 diff --git a/tests/resources/merge-recursive/.gitted/objects/15/faa0c9991f2d65686e844651faa2ff9827887b b/tests/resources/merge-recursive/.gitted/objects/15/faa0c9991f2d65686e844651faa2ff9827887b new file mode 100644 index 0000000000000000000000000000000000000000..54cd6f26ebd11798f73ecd010880bbaa79b46ac1 GIT binary patch literal 665 zcmV;K0%rYq0Zo)abJH*og*oe2EO(QcmSaviq(f(zrnD(N%l6vVSeA@d#+YBvTO|Q* zv7}wS_q|nWA8We1yTAYN{do9Fucx=?oiWdEXL@`(pXfl(r!$?uyd018?d|Y#ex=g` zy&ulUmx?}93@!$tX2~Rz^}eFh)6vKrW9Sx7v7_4CW~70DrJM0F^qlsT?Z^~Sjz08H6$D*;luKjRmHj@k z6(-lg;${S$d`rm*Lx%RT)H`3m^f9*7;5gb$?$?C?#HoO6YtNqwMgd0yrJaXG=uI01 zfKgusA~bF6#{x=Ax$lK)wi%vR)71JD%X%jG6WLGR8b4^WeP@g+`?2LXCjBrgMX3SdZxXG9dS(%~Z#;KtB zu{bmdyq398D$U3N8qKP~G)rnd@>5<&8}4`X5EF8128(&1EiN?Kt<009HvR_Zu1=g^D_t1WDRayobo6It5Zuwb?oYP83U`9SO{JP?Q6U$TCA0F*VC^zbG5Bpqhk#Z#F~8I==~LNlF6$@t$me|db>MGGVSkT;MBOo2 z9i&#f-iQFBAmlR05LD7Sh?tVI-f`s4NN&*1&S~=Oj*Yes0o4)(I&Xw9DUnAhjj?{P z(FwIQW5J?l`0Q(KaEUK$5pHWOkGjEuM*2}F`W8R8549XYD5c$^=4FA2E6&+S$JtJQ W&ai8ZIpu&oj|&6mNw7CPgj3meM@@$S literal 0 HcmV?d00001 diff --git a/tests/resources/merge-recursive/.gitted/objects/50/e4facaafb746cfed89287206274193c1417288 b/tests/resources/merge-recursive/.gitted/objects/50/e4facaafb746cfed89287206274193c1417288 new file mode 100644 index 0000000000000000000000000000000000000000..b1eaee5572fc754d31eb4fd30360ab4a6d75c181 GIT binary patch literal 207 zcmV;=05Jb}0V^p=O;s>5GG{O}FfcPQQAjKF)01=Xc+ahp+TFAo z@=c>7)Irl)p&vV%A=9|zrCw7UjFZ+sS=;KrwxX(ZQ`Wnl!=92JnLNtThyJO8pv_0Q z)OTIk?*r?|WI9+}RYWJ-QZSJrL;7gyjV)k$?^|kc9Bn4^Ya;-0A|UD7@`r*kf}?`c z&cY(}hLs$^h_3<>npU=B0VSo}_mOJW37!|Wa2He1aGM4b6)s9SK#bJtwx#GNre^Sn zr=?kkXnEaBPGQ@MKF>&+>XllCIgXWz$ppc;wULB5ALhLBmxL>&jyEOKNh1_}tM$r{tqxgllp>Vb(&&O~Pcv zg&8_-oC=yB*`SHzrObs;X-0O?s1^yP$)UB#Pk141xZlwiACOx!Xv_nxKGUSvGEbUX z{~MfxnHh>FoqSZrRn(afk)$5Q`*k$H43pwwB`h(>Km#rVPasp$ppKWn{*6-uye!Bu z;C09ZjxZRW^-m9u_<6quQpwZ=K6i!GA&152D!hgs4{^3OyHH`E_T0z1w1#Up-z4`;| Ggp305AV|0V^p=O;s>5GG{O}FfcPQQAjKsMr4E8`L(}{dV`nm Ki30$}rCe1lgkm%R literal 0 HcmV?d00001 diff --git a/tests/resources/merge-recursive/.gitted/objects/ad/1ea02c2cc4f55c1dff87b80a086206a73885eb b/tests/resources/merge-recursive/.gitted/objects/ad/1ea02c2cc4f55c1dff87b80a086206a73885eb new file mode 100644 index 0000000000000000000000000000000000000000..99207a9dd65bf2aafc27ac58179a678b7b07084a GIT binary patch literal 207 zcmV;=05Jb}0V^p=O;s>5GG{O}FfcPQQAjK>zkO(%F|N4 JD*?MaTYLMiW3vDN literal 0 HcmV?d00001 diff --git a/tests/resources/merge-recursive/.gitted/objects/ca/49d1a8b6116ffeba22667bba265fa5261df7ab b/tests/resources/merge-recursive/.gitted/objects/ca/49d1a8b6116ffeba22667bba265fa5261df7ab new file mode 100644 index 0000000000000000000000000000000000000000..1ea596763d7fab7757478d282f14a88fe220af89 GIT binary patch literal 208 zcmV;>05AV|0i}<-P6aUxM5*^H+}-M;IB{MQLP&^`jvw$k4ttB;pb*6G6J9+MmB(l7 zkw)6SUj{huu0~e{ZI$Np z4^~61MVzv$ImF80_dcOtJ);it;0ik=U(7xYx`?E z;6^9?RCoGi{A}0K_FF(ApE6nWa5iMjGU+Tg^q(=yqxNTo?=(35wZaK5$7ry2K4iN; KP0{LLBbw~kpoumm^+sLx0m=Bqli{S9BIXjc z=SZY^u^CCvDWy2nzj-Q_Sh5&jLs(of#?1#-Lal|JkgGYwN4SX+mu@j-s_-C5{ literal 0 HcmV?d00001 diff --git a/tests/resources/merge-recursive/.gitted/objects/f1/b44c04989a3a1c14b036cfadfa328d53a7bc5e b/tests/resources/merge-recursive/.gitted/objects/f1/b44c04989a3a1c14b036cfadfa328d53a7bc5e new file mode 100644 index 0000000000000000000000000000000000000000..7cbaaeecf596e2fa780fe9255822559fc9527259 GIT binary patch literal 672 zcmV;R0$=@j0Zo)okJB&^#X0*^4A&}DT9CN()I(Rh651}iT{t_*B(dVy!G8$h)APn@ zfm>sH#_#>!xV7~)-Q9is{O;T7_=R52Z_j(Bp5HF?_;fkbk)F>Nx;(s`PW1Kd_;Pur z^F4h(UQRC+eIoCScafT$C{Ehiiq20b6=&~Vmo52@YO9-(W}asbH2dsYZY$ERrL=fC z5VcJeEhY`yN}x0ZW)-bzILZmj+R>n=1AZkkiE3{w#l*Tbb}dzd&mkTtj%LCE<(o!F zD1)N4LO*siL!xoXOTDHz7$>cNvWDjW+ls2vOXf;J!JQr~rD zzYnYF?(akQDtuZ;l2iGZYQ%O48H2#yL$I}3}@ z8&+}vBfbhmXj<8h1(cL>-$$xhCwN|15{W5jxJ`qJ3KyjuAVz9++fwusQ!{wP)6%R% zw7ec9r?72BpJ${@^-3+n9LGw+|D2m`>sX$C5=IH=G+f_H$oRB3k9ek5UGewR+)f)Xb(cw&6xH40Mz literal 0 HcmV?d00001