From cdb6c1c83dd6f0d30b798a7f62d4f3849a1f11a1 Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Mon, 26 Oct 2015 17:14:28 -0400 Subject: [PATCH] merge: add a second-level recursive merge --- tests/merge/trees/recursive.c | 50 +++++++++++++++++- .../0f/a6ead2731b9d138afe38c336c9727ea05027a7 | Bin 0 -> 206 bytes .../41/71bb8d40e9fc830d79b757dc06ec6c14548b78 | Bin 0 -> 207 bytes .../4e/70a6b06fc62481f80fbb74327849e7170eebff | Bin 0 -> 207 bytes .../68/a2e1ee61a23a4728fe6b35580fbbbf729df370 | Bin 0 -> 665 bytes .../75/c653822173a8e5795153ec3773dfe44bb9bb63 | Bin 0 -> 206 bytes .../81/5b5a1c80ca749d705c7aa0cb294a00cbedd340 | Bin 0 -> 170 bytes .../89/8d12687fb35be271c27c795a6b32c8b51da79e | Bin 0 -> 663 bytes .../ad/2ace9e15f66b3d1138922e6ffdc3ea3f967fa6 | Bin 0 -> 170 bytes .../c0/bd078a61d2cc22c52ca5ce04abdcdc5cc1829e | Bin 0 -> 207 bytes .../.gitted/refs/heads/branchC-1 | Bin 0 -> 41 bytes .../.gitted/refs/heads/branchC-2 | Bin 0 -> 41 bytes 12 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 tests/resources/merge-recursive/.gitted/objects/0f/a6ead2731b9d138afe38c336c9727ea05027a7 create mode 100644 tests/resources/merge-recursive/.gitted/objects/41/71bb8d40e9fc830d79b757dc06ec6c14548b78 create mode 100644 tests/resources/merge-recursive/.gitted/objects/4e/70a6b06fc62481f80fbb74327849e7170eebff create mode 100644 tests/resources/merge-recursive/.gitted/objects/68/a2e1ee61a23a4728fe6b35580fbbbf729df370 create mode 100644 tests/resources/merge-recursive/.gitted/objects/75/c653822173a8e5795153ec3773dfe44bb9bb63 create mode 100644 tests/resources/merge-recursive/.gitted/objects/81/5b5a1c80ca749d705c7aa0cb294a00cbedd340 create mode 100644 tests/resources/merge-recursive/.gitted/objects/89/8d12687fb35be271c27c795a6b32c8b51da79e create mode 100644 tests/resources/merge-recursive/.gitted/objects/ad/2ace9e15f66b3d1138922e6ffdc3ea3f967fa6 create mode 100644 tests/resources/merge-recursive/.gitted/objects/c0/bd078a61d2cc22c52ca5ce04abdcdc5cc1829e create mode 100644 tests/resources/merge-recursive/.gitted/refs/heads/branchC-1 create mode 100644 tests/resources/merge-recursive/.gitted/refs/heads/branchC-2 diff --git a/tests/merge/trees/recursive.c b/tests/merge/trees/recursive.c index 1d3586162..a7358e7e3 100644 --- a/tests/merge/trees/recursive.c +++ b/tests/merge/trees/recursive.c @@ -88,8 +88,6 @@ void test_merge_trees_recursive__two_norecursive(void) git_index *index; git_merge_options opts = GIT_MERGE_OPTIONS_INIT; - opts.flags |= GIT_MERGE_NO_RECURSIVE; - struct merge_index_entry merge_index_entries[] = { { 0100644, "ffb36e513f5fdf8a6ba850a20142676a2ac4807d", 0, "asparagus.txt" }, { 0100644, "68f6182f4c85d39e1309d97c7e456156dc9c0096", 0, "beef.txt" }, @@ -101,6 +99,8 @@ void test_merge_trees_recursive__two_norecursive(void) { 0100644, "4e21d2d63357bde5027d1625f5ec6b430cdeb143", 3, "veal.txt" }, }; + opts.flags |= GIT_MERGE_NO_RECURSIVE; + cl_git_pass(merge_commits_from_branches(&index, repo, "branchB-1", "branchB-2", &opts)); cl_assert(merge_test_index(index, merge_index_entries, 8)); @@ -108,3 +108,49 @@ void test_merge_trees_recursive__two_norecursive(void) git_index_free(index); } +void test_merge_trees_recursive__three(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, "15faa0c9991f2d65686e844651faa2ff9827887b", 0, "veal.txt" }, + }; + + cl_git_pass(merge_commits_from_branches(&index, repo, "branchC-1", "branchC-2", &opts)); + + cl_assert(merge_test_index(index, merge_index_entries, 6)); + + git_index_free(index); +} + +void test_merge_trees_recursive__three_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, "b2a81ead9e722af0099fccfb478cea88eea749a2", 1, "veal.txt" }, + { 0100644, "898d12687fb35be271c27c795a6b32c8b51da79e", 2, "veal.txt" }, + { 0100644, "68a2e1ee61a23a4728fe6b35580fbbbf729df370", 3, "veal.txt" }, + }; + + opts.flags |= GIT_MERGE_NO_RECURSIVE; + + cl_git_pass(merge_commits_from_branches(&index, repo, "branchC-1", "branchC-2", &opts)); + + cl_assert(merge_test_index(index, merge_index_entries, 8)); + + git_index_free(index); +} + diff --git a/tests/resources/merge-recursive/.gitted/objects/0f/a6ead2731b9d138afe38c336c9727ea05027a7 b/tests/resources/merge-recursive/.gitted/objects/0f/a6ead2731b9d138afe38c336c9727ea05027a7 new file mode 100644 index 0000000000000000000000000000000000000000..b06362dd8762c3f120e98a65923f5bce9fcf5441 GIT binary patch literal 206 zcmV;<05Sh~0i}<-N(4a=MUCexD%)tKYpePNBEn*5<_}bN)i@i>w6rbz`;M<%FuN}f z+}hUlGJrhYjBW;u5lczR&hlInIgPnQAGNw*HB@BJsl+tBO1Eu*5Steavq>rHh`avk0-)}GnQG&8Al05GG{O}FfcPQQAjKKV#Ms+PV JoB-JMTjB{mWX1ph literal 0 HcmV?d00001 diff --git a/tests/resources/merge-recursive/.gitted/objects/4e/70a6b06fc62481f80fbb74327849e7170eebff b/tests/resources/merge-recursive/.gitted/objects/4e/70a6b06fc62481f80fbb74327849e7170eebff new file mode 100644 index 0000000000000000000000000000000000000000..1dfcec50bbd97451a545c4c11b1be3e1d637d061 GIT binary patch literal 207 zcmV;=05Jb}0V^p=O;s>5GG{O}FfcPQQAjKOO?0vKod_BCz|3M8g6!ELqmCq zdO)ntJ6c@sx0STDHsW2)q9;7tK)oFg_?5|Js-p8GnQi0zTB`auCpnM|Zo~l->)HyG zLD8yGInV@&F65~7mZWz!6@KpptSX{2)${g z05IySK!m21{ZK$@DR-Sv#Wut9!kUQWWZ^dVP7E%}bAlMHwM|13N2a=uh^L{+Ch@!; zG^ey}Nt`F7Ow~#a!yL=bNOnmvZtb;GIggbBSTRiznbt967iJea0{2oiW5sK2Z^dYg zxV6l|HFb~(b4Kha*tlQ0Cc9t(nQLl#gZkXlV{7!IV1#Q5F=N(J%XP+N$ifUAH%B#F7cGo*eO^H#FeR=*=%e`qr0I-=FuYHp literal 0 HcmV?d00001 diff --git a/tests/resources/merge-recursive/.gitted/objects/75/c653822173a8e5795153ec3773dfe44bb9bb63 b/tests/resources/merge-recursive/.gitted/objects/75/c653822173a8e5795153ec3773dfe44bb9bb63 new file mode 100644 index 0000000000000000000000000000000000000000..1495f70f4bfee18f37f71850b0fcbd5b8b0f723b GIT binary patch literal 206 zcmV;<05Sh~0i}<-N(C_xhOPH0raRS`zn6ib#2=%AalsGcizF-v2)Xr9_NPr6Ei(pe>V80!RfCTPH@>rgVJTM>;2hJ I9~XmgJZE)kP5=M^ literal 0 HcmV?d00001 diff --git a/tests/resources/merge-recursive/.gitted/objects/81/5b5a1c80ca749d705c7aa0cb294a00cbedd340 b/tests/resources/merge-recursive/.gitted/objects/81/5b5a1c80ca749d705c7aa0cb294a00cbedd340 new file mode 100644 index 0000000000000000000000000000000000000000..12eb0662ae04224d99b15e0e5232c198f22be9d7 GIT binary patch literal 170 zcmV;b09F5Z0i}*h3IZ_@L|x|;eSwjDI_V6E2;vRAK$7WT7MVzlczs9l2JWg}LGeuUTZ}rc(ycKWeq1o zWR}c`G0rhMBf@jsT8GQ>3Vng=t<^_c;lLaHq!WLKU)!fvkDw5(pS4v4lSC=SMmO2P Yf8L1NmXb>fqihOgh4ZAv8v-^`V*1rhTmS$7 literal 0 HcmV?d00001 diff --git a/tests/resources/merge-recursive/.gitted/objects/89/8d12687fb35be271c27c795a6b32c8b51da79e b/tests/resources/merge-recursive/.gitted/objects/89/8d12687fb35be271c27c795a6b32c8b51da79e new file mode 100644 index 0000000000000000000000000000000000000000..2ce4f7f0a4c72bf27a73631283d2ad87f508e7ba GIT binary patch literal 663 zcmV;I0%-ks0Zo)abJH*og*oe2EO(QcmSaviq(f(zrnD(N%l6vVSeA@d#+YBvTO|Q* zjV!I+``%M)A8We1yTAYN{do9Fucx=?oiWdEXL@`(pXfl(r!$?uyd018?d|Y#ex=g` zy&ulUmx?}93@!$tX2~Rz^}eFh)6vKrW9Sx7v7_4CW~7w$5+m)DV{>dy>&j*kEGQSb;Jq z+A7TBKrDy+M8M=&>{UqhN$<3NfQ=spBT28L~1%$Bk1# z^J8%s5_m1WP%6#H0UFJ!!8A*1J@QjtNE_~V^biwrYX*xx&=wb(>{j|@sg1wEIk}mk zc(OT)aiOBlB|(yQRPWbnfEk(+q*9h>9MFKvz!S)nG^peCuYVWJ052z> z)$oauY4vAj5ZuwbexGc6748HFHF~8I==~!Z2;5Wc=Saqhz{hVWc1O1`>fOaRWjh%^z&2iu=paO|$?2 literal 0 HcmV?d00001 diff --git a/tests/resources/merge-recursive/.gitted/objects/ad/2ace9e15f66b3d1138922e6ffdc3ea3f967fa6 b/tests/resources/merge-recursive/.gitted/objects/ad/2ace9e15f66b3d1138922e6ffdc3ea3f967fa6 new file mode 100644 index 0000000000000000000000000000000000000000..8ae3ba5a744f2a3f167491861e15ec70c7ba69f5 GIT binary patch literal 170 zcmV;b09F5Z0i}+?3c@fDL_Oy#@&n3dlQb!a2;$M3Kd{~1Vh?SkM*MxF_y@uqX5PRs zT;_SI7Gv1dRn;;K0x47H1ep;zB2#3AK!dPwWOf;QHFsKdsTM}+lmwG^Lod!}8r5g^ zzT-Y&Qi2GWC>eUzTUqT{UbKq6-pc$ai`{FZA9vJm@k=`{^TE0hV(u|Uuv-WKrqOn` Y>Yp>_Qe+w@raH9?O{c9hZ%Q&#vn`5F+W-In literal 0 HcmV?d00001 diff --git a/tests/resources/merge-recursive/.gitted/objects/c0/bd078a61d2cc22c52ca5ce04abdcdc5cc1829e b/tests/resources/merge-recursive/.gitted/objects/c0/bd078a61d2cc22c52ca5ce04abdcdc5cc1829e new file mode 100644 index 0000000000000000000000000000000000000000..3dde6c243e93aec666ae3ef6a209106eb9e07e14 GIT binary patch literal 207 zcmV;=05Jb}0V^p=O;s>5GG{O}FfcPQQAjKNiI}Dm+wE8I^5xVyo=( Jc>u|AT#}r9UuXaT literal 0 HcmV?d00001 diff --git a/tests/resources/merge-recursive/.gitted/refs/heads/branchC-1 b/tests/resources/merge-recursive/.gitted/refs/heads/branchC-1 new file mode 100644 index 0000000000000000000000000000000000000000..346b039b497e04072fdeb1e843f0547252be167c GIT binary patch literal 41 ucmV~$!4Uu;2m`Rc+W=>kaS+=5M=+`JY9?(9crj*i)18o}gB3~~71js-JqyPG literal 0 HcmV?d00001 diff --git a/tests/resources/merge-recursive/.gitted/refs/heads/branchC-2 b/tests/resources/merge-recursive/.gitted/refs/heads/branchC-2 new file mode 100644 index 0000000000000000000000000000000000000000..67f3153f52a2c4fba8fc2cccc44499e448f0b046 GIT binary patch literal 41 ucmcC8G)*#1G)%TINKQ02u}m>HFikd3Of*PNGO{#DGyu}6DJjM#23!E_Pzyf* literal 0 HcmV?d00001