3 test_description
='Test commit notes organized in subtrees'
12 commit refs/notes/commits
13 committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE
18 from refs/notes/commits^0
25 git log |
grep "^ " > output
&&
26 i
=$number_of_commits &&
27 while [ $i -gt 0 ]; do
29 echo " note for commit #$i" &&
32 test_cmp expect output
35 test_expect_success
"setup: create $number_of_commits commits" '
39 while [ $nr -lt $number_of_commits ]; do
43 commit refs/heads/master
44 committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE
59 commit refs/notes/commits
60 committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE
70 git fast-import --quiet &&
71 git config core.notesRef refs/notes/commits
77 nr
=$number_of_commits &&
78 git rev-list refs
/heads
/master |
80 note_path
=$
(echo "$sha1" |
sed "$1")
82 M 100644 inline $note_path
92 git fast-import
--quiet
95 test_expect_success
'test notes in 2/38-fanout' 'test_sha1_based "s|^..|&/|"'
96 test_expect_success
'verify notes in 2/38-fanout' 'verify_notes'
98 test_expect_success
'test notes in 2/2/36-fanout' 'test_sha1_based "s|^\(..\)\(..\)|\1/\2/|"'
99 test_expect_success
'verify notes in 2/2/36-fanout' 'verify_notes'
101 test_expect_success
'test notes in 2/2/2/34-fanout' 'test_sha1_based "s|^\(..\)\(..\)\(..\)|\1/\2/\3/|"'
102 test_expect_success
'verify notes in 2/2/2/34-fanout' 'verify_notes'
107 nr
=$number_of_commits &&
108 git rev-list refs
/heads
/master |
110 first_note_path
=$
(echo "$sha1" |
sed "$1")
111 second_note_path
=$
(echo "$sha1" |
sed "$2")
113 M 100644 inline $second_note_path
118 M 100644 inline $first_note_path
128 git fast-import
--quiet
131 test_expect_success
'test same notes in no fanout and 2/38-fanout' 'test_same_notes "s|^..|&/|" ""'
132 test_expect_success
'verify same notes in no fanout and 2/38-fanout' 'verify_notes'
134 test_expect_success
'test same notes in no fanout and 2/2/36-fanout' 'test_same_notes "s|^\(..\)\(..\)|\1/\2/|" ""'
135 test_expect_success
'verify same notes in no fanout and 2/2/36-fanout' 'verify_notes'
137 test_expect_success
'test same notes in 2/38-fanout and 2/2/36-fanout' 'test_same_notes "s|^\(..\)\(..\)|\1/\2/|" "s|^..|&/|"'
138 test_expect_success
'verify same notes in 2/38-fanout and 2/2/36-fanout' 'verify_notes'
140 test_expect_success
'test same notes in 2/2/2/34-fanout and 2/2/36-fanout' 'test_same_notes "s|^\(..\)\(..\)|\1/\2/|" "s|^\(..\)\(..\)\(..\)|\1/\2/\3/|"'
141 test_expect_success
'verify same notes in 2/2/2/34-fanout and 2/2/36-fanout' 'verify_notes'
143 test_concatenated_notes
() {
146 nr
=$number_of_commits &&
147 git rev-list refs
/heads
/master |
149 first_note_path
=$
(echo "$sha1" |
sed "$1")
150 second_note_path
=$
(echo "$sha1" |
sed "$2")
152 M 100644 inline $second_note_path
154 second note for commit #$nr
157 M 100644 inline $first_note_path
159 first note for commit #$nr
167 git fast-import
--quiet
170 verify_concatenated_notes
() {
171 git log |
grep "^ " > output
&&
172 i
=$number_of_commits &&
173 while [ $i -gt 0 ]; do
174 echo " commit #$i" &&
175 echo " first note for commit #$i" &&
177 echo " second note for commit #$i" &&
180 test_cmp expect output
183 test_expect_success
'test notes in no fanout concatenated with 2/38-fanout' 'test_concatenated_notes "s|^..|&/|" ""'
184 test_expect_success
'verify notes in no fanout concatenated with 2/38-fanout' 'verify_concatenated_notes'
186 test_expect_success
'test notes in no fanout concatenated with 2/2/36-fanout' 'test_concatenated_notes "s|^\(..\)\(..\)|\1/\2/|" ""'
187 test_expect_success
'verify notes in no fanout concatenated with 2/2/36-fanout' 'verify_concatenated_notes'
189 test_expect_success
'test notes in 2/38-fanout concatenated with 2/2/36-fanout' 'test_concatenated_notes "s|^\(..\)\(..\)|\1/\2/|" "s|^..|&/|"'
190 test_expect_success
'verify notes in 2/38-fanout concatenated with 2/2/36-fanout' 'verify_concatenated_notes'
192 test_expect_success
'test notes in 2/2/36-fanout concatenated with 2/2/2/34-fanout' 'test_concatenated_notes "s|^\(..\)\(..\)\(..\)|\1/\2/\3/|" "s|^\(..\)\(..\)|\1/\2/|"'
193 test_expect_success
'verify notes in 2/2/36-fanout concatenated with 2/2/2/34-fanout' 'verify_concatenated_notes'