#!/bin/sh test_description='test auto-generated merge messages' GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME . ./test-lib.sh check_oneline() { echo "$1" | sed "s/Q/'/g" >expect && git log -1 --pretty=tformat:%s >actual && test_cmp expect actual } test_expect_success 'merge local branch' ' test_commit main-1 && git checkout -b local-branch && test_commit branch-1 && git checkout main && test_commit main-2 && git merge local-branch && check_oneline "Merge branch Qlocal-branchQ" ' test_expect_success 'merge octopus branches' ' git checkout -b octopus-a main && test_commit octopus-1 && git checkout -b octopus-b main && test_commit octopus-2 && git checkout main && git merge octopus-a octopus-b && check_oneline "Merge branches Qoctopus-aQ and Qoctopus-bQ" ' test_expect_success 'merge tag' ' git checkout -b tag-branch main && test_commit tag-1 && git checkout main && test_commit main-3 && git merge tag-1 && check_oneline "Merge tag Qtag-1Q" ' test_expect_success 'ambiguous tag' ' git checkout -b ambiguous main && test_commit ambiguous && git checkout main && test_commit main-4 && git merge ambiguous && check_oneline "Merge tag QambiguousQ" ' test_expect_success 'remote-tracking branch' ' git checkout -b remote main && test_commit remote-1 && git update-ref refs/remotes/origin/main remote && git checkout main && test_commit main-5 && git merge origin/main && check_oneline "Merge remote-tracking branch Qorigin/mainQ" ' test_done