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.
79 lines
1.9 KiB
79 lines
1.9 KiB
#!/bin/sh |
|
|
|
test_description='test if rebase detects and aborts on incompatible options' |
|
. ./test-lib.sh |
|
|
|
test_expect_success 'setup' ' |
|
test_seq 2 9 >foo && |
|
git add foo && |
|
git commit -m orig && |
|
|
|
git branch A && |
|
git branch B && |
|
|
|
git checkout A && |
|
test_seq 1 9 >foo && |
|
git add foo && |
|
git commit -m A && |
|
|
|
git checkout B && |
|
echo "q qfoo();" | q_to_tab >>foo && |
|
git add foo && |
|
git commit -m B |
|
' |
|
|
|
# |
|
# Rebase has lots of useful options like --whitepsace=fix, which are |
|
# actually all built in terms of flags to git-am. Since neither |
|
# --merge nor --interactive (nor any options that imply those two) use |
|
# git-am, using them together will result in flags like --whitespace=fix |
|
# being ignored. Make sure rebase warns the user and aborts instead. |
|
# |
|
|
|
test_rebase_am_only () { |
|
opt=$1 |
|
shift |
|
test_expect_success "$opt incompatible with --merge" " |
|
git checkout B^0 && |
|
test_must_fail git rebase $opt --merge A |
|
" |
|
|
|
test_expect_success "$opt incompatible with --strategy=ours" " |
|
git checkout B^0 && |
|
test_must_fail git rebase $opt --strategy=ours A |
|
" |
|
|
|
test_expect_success "$opt incompatible with --strategy-option=ours" " |
|
git checkout B^0 && |
|
test_must_fail git rebase $opt --strategy-option=ours A |
|
" |
|
|
|
test_expect_success "$opt incompatible with --interactive" " |
|
git checkout B^0 && |
|
test_must_fail git rebase $opt --interactive A |
|
" |
|
|
|
test_expect_success "$opt incompatible with --exec" " |
|
git checkout B^0 && |
|
test_must_fail git rebase $opt --exec 'true' A |
|
" |
|
|
|
} |
|
|
|
test_rebase_am_only --whitespace=fix |
|
test_rebase_am_only --ignore-whitespace |
|
test_rebase_am_only --committer-date-is-author-date |
|
test_rebase_am_only -C4 |
|
|
|
test_expect_success REBASE_P '--preserve-merges incompatible with --signoff' ' |
|
git checkout B^0 && |
|
test_must_fail git rebase --preserve-merges --signoff A |
|
' |
|
|
|
test_expect_success REBASE_P \ |
|
'--preserve-merges incompatible with --rebase-merges' ' |
|
git checkout B^0 && |
|
test_must_fail git rebase --preserve-merges --rebase-merges A |
|
' |
|
|
|
test_done
|
|
|