f4609b896f
This also bumps the stable nixpkgs to 20.09 as of 2020-11-21, because there is some breakage in the git build related to the netrc credentials helper which someone has taken care of in nixpkgs. The stable channel is not used for anything other than git, so this should be fine. Change-Id: I3575a19dab09e1e9556cf8231d717de9890484fb
77 lines
1.8 KiB
Bash
Executable file
77 lines
1.8 KiB
Bash
Executable file
#!/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 -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
|