Makefile: add missing dependency for command-list.h
[gitweb.git] / t / t3430-rebase-merges.sh
index e9c5dc1cd95a334448efbda43d09a3ab0456f1e2..3d4dfdf7bec7db74eb41bd7606c13629f6abc370 100755 (executable)
@@ -176,6 +176,24 @@ test_expect_success 'with a branch tip that was cherry-picked already' '
        EOF
 '
 
+test_expect_success 'do not rebase cousins unless asked for' '
+       git checkout -b cousins master &&
+       before="$(git rev-parse --verify HEAD)" &&
+       test_tick &&
+       git rebase -r HEAD^ &&
+       test_cmp_rev HEAD $before &&
+       test_tick &&
+       git rebase --rebase-merges=rebase-cousins HEAD^ &&
+       test_cmp_graph HEAD^.. <<-\EOF
+       *   Merge the topic branch '\''onebranch'\''
+       |\
+       | * D
+       | * G
+       |/
+       o H
+       EOF
+'
+
 test_expect_success 'refs/rewritten/* is worktree-local' '
        git worktree add wt &&
        cat >wt/script-from-scratch <<-\EOF &&
@@ -215,4 +233,12 @@ test_expect_success 'post-rewrite hook and fixups work for merges' '
        test_cmp expect actual
 '
 
+test_expect_success 'refuse to merge ancestors of HEAD' '
+       echo "merge HEAD^" >script-from-scratch &&
+       test_config -C wt sequence.editor \""$PWD"/replace-editor.sh\" &&
+       before="$(git rev-parse HEAD)" &&
+       git rebase -i HEAD &&
+       test_cmp_rev HEAD $before
+'
+
 test_done