attr: remove index from git_attr_set_direction()
[gitweb.git] / t / t3430-rebase-merges.sh
index 2608e5483d5268f4b84f726b7b2d54961ee76a27..9e622972744a15a9e20c032b390426d39e59ddbf 100755 (executable)
@@ -70,7 +70,6 @@ test_expect_success 'create completely different structure' '
        merge -C H second
        merge onebranch # Merge the topic branch '\''onebranch'\''
        EOF
-       cp script-from-scratch script-from-scratch-orig &&
        test_config sequence.editor \""$PWD"/replace-editor.sh\" &&
        test_tick &&
        git rebase -i -r A &&
@@ -316,18 +315,52 @@ test_expect_success 'A root commit can be a cousin, treat it that way' '
 
 test_expect_success 'labels that are object IDs are rewritten' '
        git checkout -b third B &&
-       test_tick &&
        test_commit I &&
        third=$(git rev-parse HEAD) &&
        git checkout -b labels master &&
        git merge --no-commit third &&
        test_tick &&
        git commit -m "Merge commit '\''$third'\'' into labels" &&
-       cp script-from-scratch-orig script-from-scratch &&
+       echo noop >script-from-scratch &&
        test_config sequence.editor \""$PWD"/replace-editor.sh\" &&
        test_tick &&
        git rebase -i -r A &&
+       grep "^label $third-" .git/ORIGINAL-TODO &&
        ! grep "^label $third$" .git/ORIGINAL-TODO
 '
 
+test_expect_success 'octopus merges' '
+       git checkout -b three &&
+       test_commit before-octopus &&
+       test_commit three &&
+       git checkout -b two HEAD^ &&
+       test_commit two &&
+       git checkout -b one HEAD^ &&
+       test_commit one &&
+       test_tick &&
+       (GIT_AUTHOR_NAME="Hank" GIT_AUTHOR_EMAIL="hank@sea.world" \
+        git merge -m "Tüntenfüsch" two three) &&
+
+       : fast forward if possible &&
+       before="$(git rev-parse --verify HEAD)" &&
+       test_tick &&
+       git rebase -i -r HEAD^^ &&
+       test_cmp_rev HEAD $before &&
+
+       test_tick &&
+       git rebase -i --force -r HEAD^^ &&
+       test "Hank" = "$(git show -s --format=%an HEAD)" &&
+       test "$before" != $(git rev-parse HEAD) &&
+       test_cmp_graph HEAD^^.. <<-\EOF
+       *-.   Tüntenfüsch
+       |\ \
+       | | * three
+       | * | two
+       | |/
+       * | one
+       |/
+       o before-octopus
+       EOF
+'
+
 test_done