Squashed 'third_party/git/' content from commit cb71568594
git-subtree-dir: third_party/git git-subtree-split: cb715685942260375e1eb8153b0768a376e4ece7
This commit is contained in:
commit
1b593e1ea4
3629 changed files with 1139935 additions and 0 deletions
195
t/t3303-notes-subtrees.sh
Executable file
195
t/t3303-notes-subtrees.sh
Executable file
|
|
@ -0,0 +1,195 @@
|
|||
#!/bin/sh
|
||||
|
||||
test_description='Test commit notes organized in subtrees'
|
||||
|
||||
. ./test-lib.sh
|
||||
|
||||
number_of_commits=100
|
||||
|
||||
start_note_commit () {
|
||||
test_tick &&
|
||||
cat <<INPUT_END
|
||||
commit refs/notes/commits
|
||||
committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE
|
||||
data <<COMMIT
|
||||
notes
|
||||
COMMIT
|
||||
|
||||
from refs/notes/commits^0
|
||||
deleteall
|
||||
INPUT_END
|
||||
|
||||
}
|
||||
|
||||
verify_notes () {
|
||||
git log | grep "^ " > 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 $number_of_commits commits" '
|
||||
|
||||
(
|
||||
nr=0 &&
|
||||
while [ $nr -lt $number_of_commits ]; do
|
||||
nr=$(($nr+1)) &&
|
||||
test_tick &&
|
||||
cat <<INPUT_END
|
||||
commit refs/heads/master
|
||||
committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE
|
||||
data <<COMMIT
|
||||
commit #$nr
|
||||
COMMIT
|
||||
|
||||
M 644 inline file
|
||||
data <<EOF
|
||||
file in commit #$nr
|
||||
EOF
|
||||
|
||||
INPUT_END
|
||||
|
||||
done &&
|
||||
test_tick &&
|
||||
cat <<INPUT_END
|
||||
commit refs/notes/commits
|
||||
committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE
|
||||
data <<COMMIT
|
||||
no notes
|
||||
COMMIT
|
||||
|
||||
deleteall
|
||||
|
||||
INPUT_END
|
||||
|
||||
) |
|
||||
git fast-import --quiet &&
|
||||
git config core.notesRef refs/notes/commits
|
||||
'
|
||||
|
||||
test_sha1_based () {
|
||||
(
|
||||
start_note_commit &&
|
||||
nr=$number_of_commits &&
|
||||
git rev-list refs/heads/master |
|
||||
while read sha1; do
|
||||
note_path=$(echo "$sha1" | sed "$1")
|
||||
cat <<INPUT_END &&
|
||||
M 100644 inline $note_path
|
||||
data <<EOF
|
||||
note for commit #$nr
|
||||
EOF
|
||||
|
||||
INPUT_END
|
||||
|
||||
nr=$(($nr-1))
|
||||
done
|
||||
) |
|
||||
git fast-import --quiet
|
||||
}
|
||||
|
||||
test_expect_success 'test notes in 2/38-fanout' 'test_sha1_based "s|^..|&/|"'
|
||||
test_expect_success 'verify notes in 2/38-fanout' 'verify_notes'
|
||||
|
||||
test_expect_success 'test notes in 2/2/36-fanout' 'test_sha1_based "s|^\(..\)\(..\)|\1/\2/|"'
|
||||
test_expect_success 'verify notes in 2/2/36-fanout' 'verify_notes'
|
||||
|
||||
test_expect_success 'test notes in 2/2/2/34-fanout' 'test_sha1_based "s|^\(..\)\(..\)\(..\)|\1/\2/\3/|"'
|
||||
test_expect_success 'verify notes in 2/2/2/34-fanout' 'verify_notes'
|
||||
|
||||
test_same_notes () {
|
||||
(
|
||||
start_note_commit &&
|
||||
nr=$number_of_commits &&
|
||||
git rev-list refs/heads/master |
|
||||
while read sha1; do
|
||||
first_note_path=$(echo "$sha1" | sed "$1")
|
||||
second_note_path=$(echo "$sha1" | sed "$2")
|
||||
cat <<INPUT_END &&
|
||||
M 100644 inline $second_note_path
|
||||
data <<EOF
|
||||
note for commit #$nr
|
||||
EOF
|
||||
|
||||
M 100644 inline $first_note_path
|
||||
data <<EOF
|
||||
note for commit #$nr
|
||||
EOF
|
||||
|
||||
INPUT_END
|
||||
|
||||
nr=$(($nr-1))
|
||||
done
|
||||
) |
|
||||
git fast-import --quiet
|
||||
}
|
||||
|
||||
test_expect_success 'test same notes in no fanout and 2/38-fanout' 'test_same_notes "s|^..|&/|" ""'
|
||||
test_expect_success 'verify same notes in no fanout and 2/38-fanout' 'verify_notes'
|
||||
|
||||
test_expect_success 'test same notes in no fanout and 2/2/36-fanout' 'test_same_notes "s|^\(..\)\(..\)|\1/\2/|" ""'
|
||||
test_expect_success 'verify same notes in no fanout and 2/2/36-fanout' 'verify_notes'
|
||||
|
||||
test_expect_success 'test same notes in 2/38-fanout and 2/2/36-fanout' 'test_same_notes "s|^\(..\)\(..\)|\1/\2/|" "s|^..|&/|"'
|
||||
test_expect_success 'verify same notes in 2/38-fanout and 2/2/36-fanout' 'verify_notes'
|
||||
|
||||
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/|"'
|
||||
test_expect_success 'verify same notes in 2/2/2/34-fanout and 2/2/36-fanout' 'verify_notes'
|
||||
|
||||
test_concatenated_notes () {
|
||||
(
|
||||
start_note_commit &&
|
||||
nr=$number_of_commits &&
|
||||
git rev-list refs/heads/master |
|
||||
while read sha1; do
|
||||
first_note_path=$(echo "$sha1" | sed "$1")
|
||||
second_note_path=$(echo "$sha1" | sed "$2")
|
||||
cat <<INPUT_END &&
|
||||
M 100644 inline $second_note_path
|
||||
data <<EOF
|
||||
second note for commit #$nr
|
||||
EOF
|
||||
|
||||
M 100644 inline $first_note_path
|
||||
data <<EOF
|
||||
first note for commit #$nr
|
||||
EOF
|
||||
|
||||
INPUT_END
|
||||
|
||||
nr=$(($nr-1))
|
||||
done
|
||||
) |
|
||||
git fast-import --quiet
|
||||
}
|
||||
|
||||
verify_concatenated_notes () {
|
||||
git log | grep "^ " > output &&
|
||||
i=$number_of_commits &&
|
||||
while [ $i -gt 0 ]; do
|
||||
echo " commit #$i" &&
|
||||
echo " first note for commit #$i" &&
|
||||
echo " " &&
|
||||
echo " second note for commit #$i" &&
|
||||
i=$(($i-1));
|
||||
done > expect &&
|
||||
test_cmp expect output
|
||||
}
|
||||
|
||||
test_expect_success 'test notes in no fanout concatenated with 2/38-fanout' 'test_concatenated_notes "s|^..|&/|" ""'
|
||||
test_expect_success 'verify notes in no fanout concatenated with 2/38-fanout' 'verify_concatenated_notes'
|
||||
|
||||
test_expect_success 'test notes in no fanout concatenated with 2/2/36-fanout' 'test_concatenated_notes "s|^\(..\)\(..\)|\1/\2/|" ""'
|
||||
test_expect_success 'verify notes in no fanout concatenated with 2/2/36-fanout' 'verify_concatenated_notes'
|
||||
|
||||
test_expect_success 'test notes in 2/38-fanout concatenated with 2/2/36-fanout' 'test_concatenated_notes "s|^\(..\)\(..\)|\1/\2/|" "s|^..|&/|"'
|
||||
test_expect_success 'verify notes in 2/38-fanout concatenated with 2/2/36-fanout' 'verify_concatenated_notes'
|
||||
|
||||
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/|"'
|
||||
test_expect_success 'verify notes in 2/2/36-fanout concatenated with 2/2/2/34-fanout' 'verify_concatenated_notes'
|
||||
|
||||
test_done
|
||||
Loading…
Add table
Add a link
Reference in a new issue