You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
93 lines
1.7 KiB
93 lines
1.7 KiB
#!/bin/sh |
|
|
|
test_description='merge fast-forward and up to date' |
|
|
|
TEST_PASSES_SANITIZE_LEAK=true |
|
. ./test-lib.sh |
|
|
|
test_expect_success setup ' |
|
>file && |
|
git add file && |
|
test_tick && |
|
git commit -m initial && |
|
git tag c0 && |
|
|
|
echo second >file && |
|
git add file && |
|
test_tick && |
|
git commit -m second && |
|
git tag c1 && |
|
git branch test && |
|
echo third >file && |
|
git add file && |
|
test_tick && |
|
git commit -m third && |
|
git tag c2 |
|
' |
|
|
|
test_expect_success 'merge -s recursive up-to-date' ' |
|
|
|
git reset --hard c1 && |
|
test_tick && |
|
git merge -s recursive c0 && |
|
expect=$(git rev-parse c1) && |
|
current=$(git rev-parse HEAD) && |
|
test "$expect" = "$current" |
|
|
|
' |
|
|
|
test_expect_success 'merge -s recursive fast-forward' ' |
|
|
|
git reset --hard c0 && |
|
test_tick && |
|
git merge -s recursive c1 && |
|
expect=$(git rev-parse c1) && |
|
current=$(git rev-parse HEAD) && |
|
test "$expect" = "$current" |
|
|
|
' |
|
|
|
test_expect_success 'merge -s ours up-to-date' ' |
|
|
|
git reset --hard c1 && |
|
test_tick && |
|
git merge -s ours c0 && |
|
expect=$(git rev-parse c1) && |
|
current=$(git rev-parse HEAD) && |
|
test "$expect" = "$current" |
|
|
|
' |
|
|
|
test_expect_success 'merge -s ours fast-forward' ' |
|
|
|
git reset --hard c0 && |
|
test_tick && |
|
git merge -s ours c1 && |
|
expect=$(git rev-parse c0^{tree}) && |
|
current=$(git rev-parse HEAD^{tree}) && |
|
test "$expect" = "$current" |
|
|
|
' |
|
|
|
test_expect_success 'merge -s subtree up-to-date' ' |
|
|
|
git reset --hard c1 && |
|
test_tick && |
|
git merge -s subtree c0 && |
|
expect=$(git rev-parse c1) && |
|
current=$(git rev-parse HEAD) && |
|
test "$expect" = "$current" |
|
|
|
' |
|
|
|
test_expect_success 'merge fast-forward octopus' ' |
|
|
|
git reset --hard c0 && |
|
test_tick && |
|
git merge c1 c2 && |
|
expect=$(git rev-parse c2) && |
|
current=$(git rev-parse HEAD) && |
|
test "$expect" = "$current" |
|
' |
|
|
|
test_done
|
|
|