|  | #!/bin/sh | 
|  |  | 
|  | test_description='test if rebase detects and aborts on incompatible options' | 
|  |  | 
|  | TEST_PASSES_SANITIZE_LEAK=true | 
|  | . ./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_done |