Browse Source

t6022: Add tests with both rename source & dest involved in D/F conflicts

Having the source of a rename be involved in a directory/file conflict does
not currently pose any difficulties to the current merge-recursive
algorithm (in contrast to destinations of renames and D/F conflicts).
However, combining the two seemed like good testcases to include for
completeness.

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Elijah Newren 14 years ago committed by Junio C Hamano
parent
commit
588504b694
  1. 38
      t/t6022-merge-rename.sh

38
t/t6022-merge-rename.sh

@ -527,4 +527,42 @@ test_expect_failure 'Same as previous, but merged other way' ' @@ -527,4 +527,42 @@ test_expect_failure 'Same as previous, but merged other way' '
test_cmp expected dir~renamed-file-has-conflicts
'

test_expect_success 'setup both rename source and destination involved in D/F conflict' '
git reset --hard &&
git checkout --orphan rename-dest &&
git rm -rf . &&
git clean -fdqx &&

mkdir one &&
echo stuff >one/file &&
git add -A &&
git commit -m "Common commmit" &&

git mv one/file destdir &&
git commit -m "Renamed to destdir" &&

git checkout -b source-conflict HEAD~1 &&
git rm -rf one &&
mkdir destdir &&
touch one destdir/foo &&
git add -A &&
git commit -m "Conflicts in the way"
'

test_expect_failure 'both rename source and destination involved in D/F conflict' '
git reset --hard &&
rm -rf dir~* &&
git checkout -q rename-dest^0 &&
test_must_fail git merge --strategy=recursive source-conflict &&

test 1 = "$(git ls-files -u | wc -l)" &&

test_must_fail git diff --quiet &&

test -f destdir/foo &&
test -f one &&
test -f destdir~HEAD &&
test "stuff" = "$(cat destdir~HEAD)"
'

test_done

Loading…
Cancel
Save