#!/bin/sh global test_description := ''test auto-generated merge messages'' source ./test-lib.sh proc 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 master-1 && git checkout -b local-branch && test_commit branch-1 && git checkout master && test_commit master-2 && git merge local-branch && check_oneline "Merge branch Qlocal-branchQ" ' test_expect_success 'merge octopus branches' ' git checkout -b octopus-a master && test_commit octopus-1 && git checkout -b octopus-b master && test_commit octopus-2 && git checkout master && 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 master && test_commit tag-1 && git checkout master && test_commit master-3 && git merge tag-1 && check_oneline "Merge tag Qtag-1Q" ' test_expect_success 'ambiguous tag' ' git checkout -b ambiguous master && test_commit ambiguous && git checkout master && test_commit master-4 && git merge ambiguous && check_oneline "Merge tag QambiguousQ" ' test_expect_success 'remote-tracking branch' ' git checkout -b remote master && test_commit remote-1 && git update-ref refs/remotes/origin/master remote && git checkout master && test_commit master-5 && git merge origin/master && check_oneline "Merge remote-tracking branch Qorigin/masterQ" ' test_done (CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <"test auto-generated merge messages">)} spids: [4] ) ] spids: [4] ) (C {(.)} {(./test-lib.sh)}) (FuncDef name: check_oneline body: (BraceGroup children: [ (AndOr children: [ (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Number "$1"))}) (SimpleCommand words: [{(sed)} {(DQ ("s/Q/'/g"))}] redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(expect)} spids:[35])] ) ] negated: False ) (AndOr children: [ (SimpleCommand words: [ {(git)} {(log)} {(-1)} {(--pretty) (Lit_Other "=") (tformat) (Lit_Other ":") (Lit_Other "%") (s)} ] redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(actual)} spids:[54])] ) (C {(test_cmp)} {(expect)} {(actual)}) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] spids: [18] ) spids: [14 17] ) (C {(test_expect_success)} {(SQ <"merge local branch">)} { (SQ <"\n"> <"\ttest_commit master-1 &&\n"> <"\tgit checkout -b local-branch &&\n"> <"\ttest_commit branch-1 &&\n"> <"\tgit checkout master &&\n"> <"\ttest_commit master-2 &&\n"> <"\tgit merge local-branch &&\n"> <"\tcheck_oneline \"Merge branch Qlocal-branchQ\"\n"> ) } ) (C {(test_expect_success)} {(SQ <"merge octopus branches">)} { (SQ <"\n"> <"\tgit checkout -b octopus-a master &&\n"> <"\ttest_commit octopus-1 &&\n"> <"\tgit checkout -b octopus-b master &&\n"> <"\ttest_commit octopus-2 &&\n"> <"\tgit checkout master &&\n"> <"\tgit merge octopus-a octopus-b &&\n"> <"\tcheck_oneline \"Merge branches Qoctopus-aQ and Qoctopus-bQ\"\n"> ) } ) (C {(test_expect_success)} {(SQ <"merge tag">)} { (SQ <"\n"> <"\tgit checkout -b tag-branch master &&\n"> <"\ttest_commit tag-1 &&\n"> <"\tgit checkout master &&\n"> <"\ttest_commit master-3 &&\n"> <"\tgit merge tag-1 &&\n"> <"\tcheck_oneline \"Merge tag Qtag-1Q\"\n"> ) } ) (C {(test_expect_success)} {(SQ <"ambiguous tag">)} { (SQ <"\n"> <"\tgit checkout -b ambiguous master &&\n"> <"\ttest_commit ambiguous &&\n"> <"\tgit checkout master &&\n"> <"\ttest_commit master-4 &&\n"> <"\tgit merge ambiguous &&\n"> <"\tcheck_oneline \"Merge tag QambiguousQ\"\n"> ) } ) (C {(test_expect_success)} {(SQ <"remote-tracking branch">)} { (SQ <"\n"> <"\tgit checkout -b remote master &&\n"> <"\ttest_commit remote-1 &&\n"> <"\tgit update-ref refs/remotes/origin/master remote &&\n"> <"\tgit checkout master &&\n"> <"\ttest_commit master-5 &&\n"> <"\tgit merge origin/master &&\n"> <"\tcheck_oneline \"Merge remote-tracking branch Qorigin/masterQ\"\n"> ) } ) (C {(test_done)}) ] )