|  | #!/bin/sh | 
|  |  | 
|  | test_description='test auto-generated merge messages' | 
|  | . ./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 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 commit 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 commit QambiguousQ" | 
|  | ' | 
|  |  | 
|  | test_expect_success 'remote 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 branch Qorigin/masterQ" | 
|  | ' | 
|  |  | 
|  | test_done |