|
|
|
@ -12,6 +12,12 @@ test_expect_success 'setup' '
@@ -12,6 +12,12 @@ test_expect_success 'setup' '
|
|
|
|
|
test_commit c1a c1.c "c1 a" && |
|
|
|
|
git reset --hard c0 && |
|
|
|
|
test_commit c2 c2.c && |
|
|
|
|
git reset --hard c0 && |
|
|
|
|
mkdir sub && |
|
|
|
|
echo "sub/f" > sub/f && |
|
|
|
|
git add sub/f && |
|
|
|
|
git commit -m sub && |
|
|
|
|
git tag sub && |
|
|
|
|
echo "VERY IMPORTANT CHANGES" > important |
|
|
|
|
' |
|
|
|
|
|
|
|
|
@ -23,6 +29,14 @@ test_expect_success 'will not overwrite untracked file' '
@@ -23,6 +29,14 @@ test_expect_success 'will not overwrite untracked file' '
|
|
|
|
|
test_cmp important c2.c |
|
|
|
|
' |
|
|
|
|
|
|
|
|
|
test_expect_success 'will overwrite tracked file' ' |
|
|
|
|
git reset --hard c1 && |
|
|
|
|
cp important c2.c && |
|
|
|
|
git add c2.c && |
|
|
|
|
git commit -m important && |
|
|
|
|
git checkout c2 |
|
|
|
|
' |
|
|
|
|
|
|
|
|
|
test_expect_success 'will not overwrite new file' ' |
|
|
|
|
git reset --hard c1 && |
|
|
|
|
cp important c2.c && |
|
|
|
@ -76,4 +90,41 @@ test_expect_success 'will not overwrite removed file with staged changes' '
@@ -76,4 +90,41 @@ test_expect_success 'will not overwrite removed file with staged changes' '
|
|
|
|
|
test_cmp important c1.c |
|
|
|
|
' |
|
|
|
|
|
|
|
|
|
test_expect_success 'will not overwrite untracked subtree' ' |
|
|
|
|
git reset --hard c0 && |
|
|
|
|
rm -rf sub && |
|
|
|
|
mkdir -p sub/f && |
|
|
|
|
cp important sub/f/important && |
|
|
|
|
test_must_fail git merge sub && |
|
|
|
|
test_path_is_missing .git/MERGE_HEAD && |
|
|
|
|
test_cmp important sub/f/important |
|
|
|
|
' |
|
|
|
|
|
|
|
|
|
test_expect_failure 'will not overwrite untracked file in leading path' ' |
|
|
|
|
git reset --hard c0 && |
|
|
|
|
rm -rf sub && |
|
|
|
|
cp important sub && |
|
|
|
|
test_must_fail git merge sub && |
|
|
|
|
test_path_is_missing .git/MERGE_HEAD && |
|
|
|
|
test_cmp important sub |
|
|
|
|
' |
|
|
|
|
|
|
|
|
|
test_expect_failure SYMLINKS 'will not overwrite untracked symlink in leading path' ' |
|
|
|
|
git reset --hard c0 && |
|
|
|
|
rm -rf sub && |
|
|
|
|
mkdir sub2 && |
|
|
|
|
ln -s sub2 sub && |
|
|
|
|
test_must_fail git merge sub && |
|
|
|
|
test_path_is_missing .git/MERGE_HEAD |
|
|
|
|
' |
|
|
|
|
|
|
|
|
|
test_expect_success SYMLINKS 'will not be confused by symlink in leading path' ' |
|
|
|
|
git reset --hard c0 && |
|
|
|
|
rm -rf sub && |
|
|
|
|
ln -s sub2 sub && |
|
|
|
|
git add sub && |
|
|
|
|
git commit -m ln && |
|
|
|
|
git checkout sub |
|
|
|
|
' |
|
|
|
|
|
|
|
|
|
test_done |
|
|
|
|