Browse Source

Add additional testcases for D/F conflicts

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Elijah Newren 15 years ago committed by Junio C Hamano
parent
commit
f15652d90c
  1. 64
      t/t6035-merge-dir-to-symlink.sh
  2. 24
      t/t9350-fast-export.sh

64
t/t6035-merge-dir-to-symlink.sh

@ -48,7 +48,7 @@ test_expect_success 'setup for merge test' ' @@ -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)' ' @@ -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)' ' @@ -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' ' @@ -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)' ' @@ -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)' ' @@ -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

24
t/t9350-fast-export.sh

@ -376,4 +376,28 @@ test_expect_success 'tree_tag-obj' 'git fast-export tree_tag-obj' @@ -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…
Cancel
Save