summaryrefslogtreecommitdiff
path: root/t/t3301-notes.sh
blob: 9393a25511f46632763c374fec700c3eb446509e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#!/bin/sh
#
# Copyright (c) 2007 Johannes E. Schindelin
#
 
test_description='Test commit notes'
 
. ./test-lib.sh
 
cat > fake_editor.sh << \EOF
echo "$MSG" > "$1"
echo "$MSG" >& 2
EOF
chmod a+x fake_editor.sh
VISUAL=./fake_editor.sh
export VISUAL
 
test_expect_success 'cannot annotate non-existing HEAD' '
	! MSG=3 git notes edit
'
 
test_expect_success setup '
	: > a1 &&
	git add a1 &&
	test_tick &&
	git commit -m 1st &&
	: > a2 &&
	git add a2 &&
	test_tick &&
	git commit -m 2nd
'
 
test_expect_success 'need valid notes ref' '
	! MSG=1 GIT_NOTES_REF='/' git notes edit &&
	! MSG=2 GIT_NOTES_REF='/' git notes show
'
 
test_expect_success 'create notes' '
	git config core.notesRef refs/notes/commits &&
	MSG=b1 git notes edit &&
	test ! -f .git/new-notes &&
	test 1 = $(git ls-tree refs/notes/commits | wc -l) &&
	test b1 = $(git notes show) &&
	git show HEAD^ &&
	! git notes show HEAD^
'
 
cat > expect << EOF
commit 268048bfb8a1fb38e703baceb8ab235421bf80c5
Author: A U Thor <author@example.com>
Date:   Thu Apr 7 15:14:13 2005 -0700
 
    2nd
 
Notes:
    b1
EOF
 
test_expect_success 'show notes' '
	! (git cat-file commit HEAD | grep b1) &&
	git log -1 > output &&
	test_cmp expect output
'
test_expect_success 'create multi-line notes (setup)' '
	: > a3 &&
	git add a3 &&
	test_tick &&
	git commit -m 3rd &&
	MSG="b3
c3c3c3c3
d3d3d3" git notes edit
'
 
cat > expect-multiline << EOF
commit 1584215f1d29c65e99c6c6848626553fdd07fd75
Author: A U Thor <author@example.com>
Date:   Thu Apr 7 15:15:13 2005 -0700
 
    3rd
 
Notes:
    b3
    c3c3c3c3
    d3d3d3
EOF
 
printf "\n" >> expect-multiline
cat expect >> expect-multiline
 
test_expect_success 'show multi-line notes' '
	git log -2 > output &&
	test_cmp expect-multiline output
'
 
test_done