Files
git-mirror/t/t7615-diff-algo-with-mergy-operations.sh
Elijah Newren 75cd9ae05f 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>
2025-04-08 13:59:12 -07:00

58 lines
1.8 KiB
Bash
Executable File

#!/bin/sh
test_description='git merge and other operations that rely on merge
Testing the influence of the diff algorithm on the merge output.'
. ./test-lib.sh
test_expect_success 'setup' '
cp "$TEST_DIRECTORY"/t7615/base.c file.c &&
git add file.c &&
git commit -m c0 &&
git tag c0 &&
cp "$TEST_DIRECTORY"/t7615/ours.c file.c &&
git add file.c &&
git commit -m c1 &&
git tag c1 &&
git reset --hard c0 &&
cp "$TEST_DIRECTORY"/t7615/theirs.c file.c &&
git add file.c &&
git commit -m c2 &&
git tag c2
'
test_expect_success 'merge c2 to c1 with recursive merge strategy fails with the current default myers diff algorithm' '
git reset --hard c1 &&
test_must_fail git merge -s recursive -Xdiff-algorithm=myers c2
'
test_expect_success 'merge c2 to c1 with recursive merge strategy succeeds with -Xdiff-algorithm=histogram' '
git reset --hard c1 &&
git merge --strategy recursive -Xdiff-algorithm=histogram c2
'
test_expect_success 'merge c2 to c1 with recursive merge strategy succeeds with diff.algorithm = histogram' '
git reset --hard c1 &&
git config diff.algorithm histogram &&
git merge --strategy recursive c2
'
test_expect_success 'cherry-pick c2 to c1 with recursive merge strategy fails with the current default myers diff algorithm' '
git reset --hard c1 &&
test_must_fail git cherry-pick -s recursive -Xdiff-algorithm=myers c2
'
test_expect_success 'cherry-pick c2 to c1 with recursive merge strategy succeeds with -Xdiff-algorithm=histogram' '
git reset --hard c1 &&
git cherry-pick --strategy recursive -Xdiff-algorithm=histogram c2
'
test_expect_success 'cherry-pick c2 to c1 with recursive merge strategy succeeds with diff.algorithm = histogram' '
git reset --hard c1 &&
git config diff.algorithm histogram &&
git cherry-pick --strategy recursive c2
'
test_done