Signed-off-by: Elijah Newren <newren@xxxxxxxxx> --- t/t6043-merge-index-only.sh | 70 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/t/t6043-merge-index-only.sh b/t/t6043-merge-index-only.sh index b8b22ab..67c8e92 100755 --- a/t/t6043-merge-index-only.sh +++ b/t/t6043-merge-index-only.sh @@ -167,4 +167,74 @@ test_expect_failure 'recursive --index-only in bare repo' ' ) ' +# Testcase for a simple ff update +# A +# o-----o E +# +# Commit A: some file a +# Commit E: renames a->subdir/a, adds subdir/e + +test_expect_success 'setup simple ff update' ' + git reset --hard && + git rm -rf . && + git clean -fdqx && + rm -rf .git && + git init && + + seq 1 10 >a && + git add a && + test_tick && git commit -m A && + + git branch A && + git branch E && + + git checkout E && + mkdir subdir && + git mv a subdir/a && + echo e >subdir/e && + git add subdir && + test_tick && git commit -m E +' + +test_expect_failure '--index-only ff update, non-bare' ' + git reset --hard && + git checkout A^0 && + + git merge --index-only --ff-only E^0 && + + git diff --staged --exit-code E && + test $(git hash-object a) = $(git rev-parse A:a) && + test ! -d subdir +' + +test_expect_failure '--index-only ff update, bare' ' + git clone --bare . bare.clone && + (cd bare.clone && + + git update-ref --no-deref HEAD A && + git read-tree HEAD && + + git merge --index-only --ff-only E^0 && + + git diff --staged --exit-code E && + test ! -f a && + test ! -d subdir + ) +' + +test_expect_failure '--index-only ff update, non-bare with uncommitted changes' ' + git clean -fdx && + git reset --hard && + git checkout A^0 && + + touch random_file && git add random_file && + + git merge --index-only --ff-only E^0 && + + test_must_fail git rev-parse HEAD:random_file && + test "$(git diff --name-only --cached E)" = "random_file" && + test $(git hash-object a) = $(git rev-parse A:a) && + test ! -d subdir +' + test_done -- 2.8.0.18.gc685494 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html