Git fork

merge, sequencer: switch recursive merges over to ort

More precisely, replace calls to merge_recursive() with
merge_ort_recursive().

Also change t7615 to quit calling out recursive; it is not needed
anymore, and we are in fact using ort now.

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

authored by

Elijah Newren and committed by
Junio C Hamano
75cd9ae0 f7ca9bbe

+10 -24
+2 -7
builtin/merge.c
··· 39 39 #include "rerere.h" 40 40 #include "help.h" 41 41 #include "merge.h" 42 - #include "merge-recursive.h" 43 42 #include "merge-ort-wrappers.h" 44 43 #include "resolve-undo.h" 45 44 #include "remote.h" ··· 750 749 751 750 repo_hold_locked_index(the_repository, &lock, 752 751 LOCK_DIE_ON_ERROR); 753 - if (!strcmp(strategy, "ort")) 754 - clean = merge_ort_recursive(&o, head, remoteheads->item, 755 - reversed, &result); 756 - else 757 - clean = merge_recursive(&o, head, remoteheads->item, 758 - reversed, &result); 752 + clean = merge_ort_recursive(&o, head, remoteheads->item, 753 + reversed, &result); 759 754 free_commit_list(reversed); 760 755 strbuf_release(&o.obuf); 761 756
+8 -15
sequencer.c
··· 4319 4319 o.branch2 = ref_name.buf; 4320 4320 o.buffer_output = 2; 4321 4321 4322 - if (!opts->strategy || !strcmp(opts->strategy, "ort")) { 4323 - /* 4324 - * TODO: Should use merge_incore_recursive() and 4325 - * merge_switch_to_result(), skipping the call to 4326 - * merge_switch_to_result() when we don't actually need to 4327 - * update the index and working copy immediately. 4328 - */ 4329 - ret = merge_ort_recursive(&o, 4330 - head_commit, merge_commit, bases, 4331 - &i); 4332 - } else { 4333 - ret = merge_recursive(&o, head_commit, merge_commit, bases, 4334 - &i); 4335 - } 4322 + /* 4323 + * TODO: Should use merge_incore_recursive() and 4324 + * merge_switch_to_result(), skipping the call to 4325 + * merge_switch_to_result() when we don't actually need to 4326 + * update the index and working copy immediately. 4327 + */ 4328 + ret = merge_ort_recursive(&o, head_commit, merge_commit, bases, &i); 4336 4329 if (ret <= 0) 4337 4330 fputs(o.obuf.buf, stdout); 4338 4331 strbuf_release(&o.obuf); ··· 4343 4336 goto leave_merge; 4344 4337 } 4345 4338 /* 4346 - * The return value of merge_recursive() is 1 on clean, and 0 on 4339 + * The return value of merge_ort_recursive() is 1 on clean, and 0 on 4347 4340 * unclean merge. 4348 4341 * 4349 4342 * Let's reverse that, so that do_merge() returns 0 upon success and
-2
t/t7615-diff-algo-with-mergy-operations.sh
··· 22 22 git tag c2 23 23 ' 24 24 25 - GIT_TEST_MERGE_ALGORITHM=recursive 26 - 27 25 test_expect_success 'merge c2 to c1 with recursive merge strategy fails with the current default myers diff algorithm' ' 28 26 git reset --hard c1 && 29 27 test_must_fail git merge -s recursive -Xdiff-algorithm=myers c2