#!/bin/sh test_description='Test notes trees that also contain non-notes' . ./test-lib.sh number_of_commits=100 start_note_commit () { test_tick && cat < $GIT_COMMITTER_DATE data < output && i=$number_of_commits && while [ $i -gt 0 ]; do echo " commit #$i" && echo " note for commit #$i" && i=$(($i-1)); done > expect && test_cmp expect output } test_expect_success "setup: create a couple of commits" ' test_tick && cat <input && commit refs/heads/master committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE data <>input && commit refs/heads/master committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE data <input && commit refs/notes/commits committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE data <>input && commit refs/notes/commits committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE data <>input && commit refs/notes/commits committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE data <expect < actual && test_cmp expect actual ' cat >expect_nn1 <expect_nn2 <expect_nn3 <expect_nn4 < actual_nn1 && test_cmp expect_nn1 actual_nn1 && git cat-file -p refs/notes/commits:deadbeef > actual_nn2 && test_cmp expect_nn2 actual_nn2 && git cat-file -p refs/notes/commits:de/adbeef > actual_nn3 && test_cmp expect_nn3 actual_nn3 && git cat-file -p refs/notes/commits:dead/beef > actual_nn4 && test_cmp expect_nn4 actual_nn4 ' test_expect_success "git-notes preserves non-notes" ' test_tick && git notes edit -m "foo bar" ' test_expect_success "verify contents of non-notes after git-notes" ' git cat-file -p refs/notes/commits:foobar/non-note.txt > actual_nn1 && test_cmp expect_nn1 actual_nn1 && git cat-file -p refs/notes/commits:deadbeef > actual_nn2 && test_cmp expect_nn2 actual_nn2 && git cat-file -p refs/notes/commits:de/adbeef > actual_nn3 && test_cmp expect_nn3 actual_nn3 && git cat-file -p refs/notes/commits:dead/beef > actual_nn4 && test_cmp expect_nn4 actual_nn4 ' test_done