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'