add tests for merge message headings
When calling "git merge $X", we automatically generate a commit message containing something like "Merge branch '$X'". This test script checks that those messages say what they should, and exposes a failure when merging a refname that is ambiguous between a tag and a branch. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King committed
Aug 9, 2009 at 06:01 UTC
ce0646184696ae6d87c0e243d058cf5df6459c4f
1 file changed
+50
t/t7608-merge-messages.sh
new
+50
@@ -0,0 +1,50 @@
1
+#!/bin/sh
2
+
3
+test_description='test auto-generated merge messages'
4
+. ./test-lib.sh
5
+
6
+check_oneline() {
7
+ echo "$1" | sed "s/Q/'/g" >expect &&
8
+ git log -1 --pretty=tformat:%s >actual &&
9
+ test_cmp expect actual
10
+}
11
+
12
+test_expect_success 'merge local branch' '
13
+ test_commit master-1 &&
14
+ git checkout -b local-branch &&
15
+ test_commit branch-1 &&
16
+ git checkout master &&
17
+ test_commit master-2 &&
18
+ git merge local-branch &&
19
+ check_oneline "Merge branch Qlocal-branchQ"
20
+'
21
+
22
+test_expect_success 'merge octopus branches' '
23
+ git checkout -b octopus-a master &&
24
+ test_commit octopus-1 &&
25
+ git checkout -b octopus-b master &&
26
+ test_commit octopus-2 &&
27
+ git checkout master &&
28
+ git merge octopus-a octopus-b &&
29
+ check_oneline "Merge branches Qoctopus-aQ and Qoctopus-bQ"
30
+'
31
+
32
+test_expect_success 'merge tag' '
33
+ git checkout -b tag-branch master &&
34
+ test_commit tag-1 &&
35
+ git checkout master &&
36
+ test_commit master-3 &&
37
+ git merge tag-1 &&
38
+ check_oneline "Merge commit Qtag-1Q"
39
+'
40
+
41
+test_expect_failure 'ambiguous tag' '
42
+ git checkout -b ambiguous master &&
43
+ test_commit ambiguous &&
44
+ git checkout master &&
45
+ test_commit master-4 &&
46
+ git merge ambiguous &&
47
+ check_oneline "Merge commit QambiguousQ"
48
+'
49
+
50
+test_done