Add additional testcases for D/F conflicts
Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
d599e0484f
commit
f15652d90c
@ -48,7 +48,7 @@ test_expect_success 'setup for merge test' '
|
||||
git tag baseline
|
||||
'
|
||||
|
||||
test_expect_success 'do not lose a/b-2/c/d in merge (resolve)' '
|
||||
test_expect_success 'Handle D/F conflict, do not lose a/b-2/c/d in merge (resolve)' '
|
||||
git reset --hard &&
|
||||
git checkout baseline^0 &&
|
||||
git merge -s resolve master &&
|
||||
@ -56,7 +56,7 @@ test_expect_success 'do not lose a/b-2/c/d in merge (resolve)' '
|
||||
test -f a/b-2/c/d
|
||||
'
|
||||
|
||||
test_expect_failure 'do not lose a/b-2/c/d in merge (recursive)' '
|
||||
test_expect_failure 'Handle D/F conflict, do not lose a/b-2/c/d in merge (recursive)' '
|
||||
git reset --hard &&
|
||||
git checkout baseline^0 &&
|
||||
git merge -s recursive master &&
|
||||
@ -64,6 +64,54 @@ test_expect_failure 'do not lose a/b-2/c/d in merge (recursive)' '
|
||||
test -f a/b-2/c/d
|
||||
'
|
||||
|
||||
test_expect_success 'Handle F/D conflict, do not lose a/b-2/c/d in merge (resolve)' '
|
||||
git reset --hard &&
|
||||
git checkout master^0 &&
|
||||
git merge -s resolve baseline^0 &&
|
||||
test -h a/b &&
|
||||
test -f a/b-2/c/d
|
||||
'
|
||||
|
||||
test_expect_failure 'Handle F/D conflict, do not lose a/b-2/c/d in merge (recursive)' '
|
||||
git reset --hard &&
|
||||
git checkout master^0 &&
|
||||
git merge -s recursive baseline^0 &&
|
||||
test -h a/b &&
|
||||
test -f a/b-2/c/d
|
||||
'
|
||||
|
||||
test_expect_failure 'do not lose untracked in merge (resolve)' '
|
||||
git reset --hard &&
|
||||
git checkout baseline^0 &&
|
||||
>a/b/c/e &&
|
||||
test_must_fail git merge -s resolve master &&
|
||||
test -f a/b/c/e &&
|
||||
test -f a/b-2/c/d
|
||||
'
|
||||
|
||||
test_expect_success 'do not lose untracked in merge (recursive)' '
|
||||
git reset --hard &&
|
||||
git checkout baseline^0 &&
|
||||
>a/b/c/e &&
|
||||
test_must_fail git merge -s recursive master &&
|
||||
test -f a/b/c/e &&
|
||||
test -f a/b-2/c/d
|
||||
'
|
||||
|
||||
test_expect_success 'do not lose modifications in merge (resolve)' '
|
||||
git reset --hard &&
|
||||
git checkout baseline^0 &&
|
||||
echo more content >>a/b/c/d &&
|
||||
test_must_fail git merge -s resolve master
|
||||
'
|
||||
|
||||
test_expect_success 'do not lose modifications in merge (recursive)' '
|
||||
git reset --hard &&
|
||||
git checkout baseline^0 &&
|
||||
echo more content >>a/b/c/d &&
|
||||
test_must_fail git merge -s recursive master
|
||||
'
|
||||
|
||||
test_expect_success 'setup a merge where dir a/b-2 changed to symlink' '
|
||||
git reset --hard &&
|
||||
git checkout start^0 &&
|
||||
@ -74,7 +122,7 @@ test_expect_success 'setup a merge where dir a/b-2 changed to symlink' '
|
||||
git tag test2
|
||||
'
|
||||
|
||||
test_expect_success 'merge should not have conflicts (resolve)' '
|
||||
test_expect_success 'merge should not have D/F conflicts (resolve)' '
|
||||
git reset --hard &&
|
||||
git checkout baseline^0 &&
|
||||
git merge -s resolve test2 &&
|
||||
@ -82,7 +130,7 @@ test_expect_success 'merge should not have conflicts (resolve)' '
|
||||
test -f a/b/c/d
|
||||
'
|
||||
|
||||
test_expect_failure 'merge should not have conflicts (recursive)' '
|
||||
test_expect_failure 'merge should not have D/F conflicts (recursive)' '
|
||||
git reset --hard &&
|
||||
git checkout baseline^0 &&
|
||||
git merge -s recursive test2 &&
|
||||
@ -90,4 +138,12 @@ test_expect_failure 'merge should not have conflicts (recursive)' '
|
||||
test -f a/b/c/d
|
||||
'
|
||||
|
||||
test_expect_failure 'merge should not have F/D conflicts (recursive)' '
|
||||
git reset --hard &&
|
||||
git checkout -b foo test2 &&
|
||||
git merge -s recursive baseline^0 &&
|
||||
test -h a/b-2 &&
|
||||
test -f a/b/c/d
|
||||
'
|
||||
|
||||
test_done
|
||||
|
@ -376,4 +376,28 @@ test_expect_success 'tree_tag-obj' 'git fast-export tree_tag-obj'
|
||||
test_expect_success 'tag-obj_tag' 'git fast-export tag-obj_tag'
|
||||
test_expect_success 'tag-obj_tag-obj' 'git fast-export tag-obj_tag-obj'
|
||||
|
||||
test_expect_failure 'directory becomes symlink' '
|
||||
git init dirtosymlink &&
|
||||
git init result &&
|
||||
(
|
||||
cd dirtosymlink &&
|
||||
mkdir foo &&
|
||||
mkdir bar &&
|
||||
echo hello > foo/world &&
|
||||
echo hello > bar/world &&
|
||||
git add foo/world bar/world &&
|
||||
git commit -q -mone &&
|
||||
git rm -r foo &&
|
||||
ln -s bar foo &&
|
||||
git add foo &&
|
||||
git commit -q -mtwo
|
||||
) &&
|
||||
(
|
||||
cd dirtosymlink &&
|
||||
git fast-export master -- foo |
|
||||
(cd ../result && git fast-import --quiet)
|
||||
) &&
|
||||
(cd result && git show master:foo)
|
||||
'
|
||||
|
||||
test_done
|
||||
|
Loading…
Reference in New Issue
Block a user