about summary refs log tree commit diff
path: root/third_party/git/t/t9301-fast-import-notes.sh
diff options
context:
space:
mode:
authorVincent Ambo <mail@tazj.in>2021-09-21T10·03+0300
committerVincent Ambo <mail@tazj.in>2021-09-21T11·29+0300
commit43b1791ec601732ac31195df96781a848360a9ac (patch)
treedaae8d638343295d2f1f7da955e556ef4c958864 /third_party/git/t/t9301-fast-import-notes.sh
parent2d8e7dc9d9c38127ec4ebd13aee8e8f586a43318 (diff)
chore(3p/git): Unvendor git and track patches instead r/2903
This was vendored a long time ago under the expectation that keeping
it in sync with cgit would be easier this way, but it has proven not
to be a big issue.

On the other hand, a vendored copy of git is an annoying maintenance
burden. It is much easier to rebase the single (dottime) patch that we
have.

This removes the vendored copy of git and instead passes the git
source code to cgit via `pkgs.srcOnly`, which includes the applied
patch so that cgit can continue rendering dottime.

Change-Id: If31f62dea7ce688fd1b9050204e9378019775f2b
Diffstat (limited to 'third_party/git/t/t9301-fast-import-notes.sh')
-rwxr-xr-xthird_party/git/t/t9301-fast-import-notes.sh724
1 files changed, 0 insertions, 724 deletions
diff --git a/third_party/git/t/t9301-fast-import-notes.sh b/third_party/git/t/t9301-fast-import-notes.sh
deleted file mode 100755
index 14c1baa73940..000000000000
--- a/third_party/git/t/t9301-fast-import-notes.sh
+++ /dev/null
@@ -1,724 +0,0 @@
-#!/bin/sh
-#
-# Copyright (c) 2009 Johan Herland
-#
-
-test_description='test git fast-import of notes objects'
-. ./test-lib.sh
-
-
-test_tick
-cat >input <<INPUT_END
-commit refs/heads/master
-committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE
-data <<COMMIT
-first commit
-COMMIT
-
-M 644 inline foo
-data <<EOF
-file foo in first commit
-EOF
-
-M 755 inline bar
-data <<EOF
-file bar in first commit
-EOF
-
-M 644 inline baz/xyzzy
-data <<EOF
-file baz/xyzzy in first commit
-EOF
-
-commit refs/heads/master
-committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE
-data <<COMMIT
-second commit
-COMMIT
-
-M 644 inline foo
-data <<EOF
-file foo in second commit
-EOF
-
-M 755 inline baz/xyzzy
-data <<EOF
-file baz/xyzzy in second commit
-EOF
-
-commit refs/heads/master
-committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE
-data <<COMMIT
-third commit
-COMMIT
-
-M 644 inline foo
-data <<EOF
-file foo in third commit
-EOF
-
-commit refs/heads/master
-committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE
-data <<COMMIT
-fourth commit
-COMMIT
-
-M 755 inline bar
-data <<EOF
-file bar in fourth commit
-EOF
-
-INPUT_END
-
-test_expect_success 'set up master branch' '
-
-	git fast-import <input &&
-	git whatchanged master
-'
-
-commit4=$(git rev-parse refs/heads/master)
-commit3=$(git rev-parse "$commit4^")
-commit2=$(git rev-parse "$commit4~2")
-commit1=$(git rev-parse "$commit4~3")
-
-test_tick
-cat >input <<INPUT_END
-commit refs/notes/test
-committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE
-data <<COMMIT
-first notes commit
-COMMIT
-
-M 644 inline $commit1
-data <<EOF
-first note for first commit
-EOF
-
-M 755 inline $commit2
-data <<EOF
-first note for second commit
-EOF
-
-INPUT_END
-
-cat >expect <<EXPECT_END
-    fourth commit
-    third commit
-    second commit
-    first note for second commit
-    first commit
-    first note for first commit
-EXPECT_END
-
-test_expect_success 'add notes with simple M command' '
-
-	git fast-import <input &&
-	GIT_NOTES_REF=refs/notes/test git log | grep "^    " > actual &&
-	test_cmp expect actual
-
-'
-
-test_tick
-cat >input <<INPUT_END
-feature notes
-commit refs/notes/test
-committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE
-data <<COMMIT
-second notes commit
-COMMIT
-
-from refs/notes/test^0
-N inline $commit3
-data <<EOF
-first note for third commit
-EOF
-
-N inline $commit4
-data <<EOF
-first note for fourth commit
-EOF
-
-INPUT_END
-
-cat >expect <<EXPECT_END
-    fourth commit
-    first note for fourth commit
-    third commit
-    first note for third commit
-    second commit
-    first note for second commit
-    first commit
-    first note for first commit
-EXPECT_END
-
-test_expect_success 'add notes with simple N command' '
-
-	git fast-import <input &&
-	GIT_NOTES_REF=refs/notes/test git log | grep "^    " > actual &&
-	test_cmp expect actual
-
-'
-
-test_tick
-cat >input <<INPUT_END
-commit refs/notes/test
-committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE
-data <<COMMIT
-third notes commit
-COMMIT
-
-from refs/notes/test^0
-N inline $commit1
-data <<EOF
-second note for first commit
-EOF
-
-N inline $commit2
-data <<EOF
-second note for second commit
-EOF
-
-N inline $commit3
-data <<EOF
-second note for third commit
-EOF
-
-N inline $commit4
-data <<EOF
-second note for fourth commit
-EOF
-
-INPUT_END
-
-cat >expect <<EXPECT_END
-    fourth commit
-    second note for fourth commit
-    third commit
-    second note for third commit
-    second commit
-    second note for second commit
-    first commit
-    second note for first commit
-EXPECT_END
-
-test_expect_success 'update existing notes with N command' '
-
-	git fast-import <input &&
-	GIT_NOTES_REF=refs/notes/test git log | grep "^    " > actual &&
-	test_cmp expect actual
-
-'
-
-test_tick
-cat >input <<INPUT_END
-commit refs/notes/test
-committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE
-data <<COMMIT
-fourth notes commit
-COMMIT
-
-from refs/notes/test^0
-M 644 inline $(echo "$commit3" | sed "s|^..|&/|")
-data <<EOF
-prefix of note for third commit
-EOF
-
-M 644 inline $(echo "$commit4" | sed "s|^..|&/|")
-data <<EOF
-prefix of note for fourth commit
-EOF
-
-M 644 inline $(echo "$commit4" | sed "s|^\(..\)\(..\)|\1/\2/|")
-data <<EOF
-pre-prefix of note for fourth commit
-EOF
-
-N inline $commit1
-data <<EOF
-third note for first commit
-EOF
-
-N inline $commit2
-data <<EOF
-third note for second commit
-EOF
-
-N inline $commit3
-data <<EOF
-third note for third commit
-EOF
-
-N inline $commit4
-data <<EOF
-third note for fourth commit
-EOF
-
-
-INPUT_END
-
-whitespace="    "
-
-cat >expect <<EXPECT_END
-    fourth commit
-    pre-prefix of note for fourth commit
-$whitespace
-    prefix of note for fourth commit
-$whitespace
-    third note for fourth commit
-    third commit
-    prefix of note for third commit
-$whitespace
-    third note for third commit
-    second commit
-    third note for second commit
-    first commit
-    third note for first commit
-EXPECT_END
-
-test_expect_success 'add concatenation notes with M command' '
-
-	git fast-import <input &&
-	GIT_NOTES_REF=refs/notes/test git log | grep "^    " > actual &&
-	test_cmp expect actual
-
-'
-
-test_tick
-cat >input <<INPUT_END
-commit refs/notes/test
-committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE
-data <<COMMIT
-fifth notes commit
-COMMIT
-
-from refs/notes/test^0
-deleteall
-
-INPUT_END
-
-cat >expect <<EXPECT_END
-    fourth commit
-    third commit
-    second commit
-    first commit
-EXPECT_END
-
-test_expect_success 'verify that deleteall also removes notes' '
-
-	git fast-import <input &&
-	GIT_NOTES_REF=refs/notes/test git log | grep "^    " > actual &&
-	test_cmp expect actual
-
-'
-
-test_tick
-cat >input <<INPUT_END
-commit refs/notes/test
-committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE
-data <<COMMIT
-sixth notes commit
-COMMIT
-
-from refs/notes/test^0
-M 644 inline $commit1
-data <<EOF
-third note for first commit
-EOF
-
-M 644 inline $commit3
-data <<EOF
-third note for third commit
-EOF
-
-N inline $commit1
-data <<EOF
-fourth note for first commit
-EOF
-
-N inline $commit3
-data <<EOF
-fourth note for third commit
-EOF
-
-INPUT_END
-
-cat >expect <<EXPECT_END
-    fourth commit
-    third commit
-    fourth note for third commit
-    second commit
-    first commit
-    fourth note for first commit
-EXPECT_END
-
-test_expect_success 'verify that later N commands override earlier M commands' '
-
-	git fast-import <input &&
-	GIT_NOTES_REF=refs/notes/test git log | grep "^    " > actual &&
-	test_cmp expect actual
-
-'
-
-# Write fast-import commands to create the given number of commits
-fast_import_commits () {
-	my_ref=$1
-	my_num_commits=$2
-	my_append_to_file=$3
-	my_i=0
-	while test $my_i -lt $my_num_commits
-	do
-		my_i=$(($my_i + 1))
-		test_tick
-		cat >>"$my_append_to_file" <<INPUT_END
-commit $my_ref
-mark :$my_i
-committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE
-data <<COMMIT
-commit #$my_i
-COMMIT
-
-M 644 inline file
-data <<EOF
-file contents in commit #$my_i
-EOF
-
-INPUT_END
-	done
-}
-
-# Write fast-import commands to create the given number of notes annotating
-# the commits created by fast_import_commits()
-fast_import_notes () {
-	my_notes_ref=$1
-	my_num_commits=$2
-	my_append_to_file=$3
-	my_note_append=$4
-	test_tick
-	cat >>"$my_append_to_file" <<INPUT_END
-commit $my_notes_ref
-committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE
-data <<COMMIT
-committing $my_num_commits notes
-COMMIT
-
-INPUT_END
-
-	my_i=0
-	while test $my_i -lt $my_num_commits
-	do
-		my_i=$(($my_i + 1))
-		cat >>"$my_append_to_file" <<INPUT_END
-N inline :$my_i
-data <<EOF
-note for commit #$my_i$my_note_append
-EOF
-
-INPUT_END
-	done
-}
-
-
-rm input expect
-num_commits=400
-# Create lots of commits
-fast_import_commits "refs/heads/many_commits" $num_commits input
-# Create one note per above commit
-fast_import_notes "refs/notes/many_notes" $num_commits input
-# Add a couple of non-notes as well
-test_tick
-cat >>input <<INPUT_END
-commit refs/notes/many_notes
-committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE
-data <<COMMIT
-committing some non-notes to the notes tree
-COMMIT
-
-M 755 inline foobar/non-note.txt
-data <<EOF
-This is not a note, but rather a regular file residing in a notes tree
-EOF
-
-M 644 inline deadbeef
-data <<EOF
-Non-note file
-EOF
-
-M 644 inline de/adbeef
-data <<EOF
-Another non-note file
-EOF
-
-INPUT_END
-# Finally create the expected output from all these notes and commits
-i=$num_commits
-while test $i -gt 0
-do
-	cat >>expect <<EXPECT_END
-    commit #$i
-    note for commit #$i
-EXPECT_END
-	i=$(($i - 1))
-done
-
-test_expect_success 'add lots of commits and notes' '
-
-	git fast-import <input &&
-	GIT_NOTES_REF=refs/notes/many_notes git log refs/heads/many_commits |
-	    grep "^    " > actual &&
-	test_cmp expect actual
-
-'
-
-test_expect_success 'verify that lots of notes trigger a fanout scheme' '
-	hexsz=$(test_oid hexsz) &&
-
-	# None of the entries in the top-level notes tree should be a full SHA1
-	git ls-tree --name-only refs/notes/many_notes |
-	while read path
-	do
-		if test $(expr length "$path") -ge $hexsz
-		then
-			return 1
-		fi
-	done
-
-'
-
-# Create another notes tree from the one above
-SP=" "
-cat >>input <<INPUT_END
-commit refs/heads/other_commits
-committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE
-data <<COMMIT
-commit #$(($num_commit + 1))
-COMMIT
-
-from refs/heads/many_commits
-M 644 inline file
-data <<EOF
-file contents in commit #$(($num_commit + 1))
-EOF
-
-commit refs/notes/other_notes
-committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE
-data <<COMMIT
-committing one more note on a tree imported from a previous notes tree
-COMMIT
-
-M 040000 $(git log --no-walk --format=%T refs/notes/many_notes)$SP
-N inline :$(($num_commit + 1))
-data <<EOF
-note for commit #$(($num_commit + 1))
-EOF
-INPUT_END
-
-test_expect_success 'verify that importing a notes tree respects the fanout scheme' '
-	git fast-import <input &&
-
-	# None of the entries in the top-level notes tree should be a full SHA1
-	git ls-tree --name-only refs/notes/other_notes |
-	while read path
-	do
-		if test $(expr length "$path") -ge $hexsz
-		then
-			return 1
-		fi
-	done
-'
-
-cat >>expect_non-note1 << EOF
-This is not a note, but rather a regular file residing in a notes tree
-EOF
-
-cat >>expect_non-note2 << EOF
-Non-note file
-EOF
-
-cat >>expect_non-note3 << EOF
-Another non-note file
-EOF
-
-test_expect_success 'verify that non-notes are untouched by a fanout change' '
-
-	git cat-file -p refs/notes/many_notes:foobar/non-note.txt > actual &&
-	test_cmp expect_non-note1 actual &&
-	git cat-file -p refs/notes/many_notes:deadbeef > actual &&
-	test_cmp expect_non-note2 actual &&
-	git cat-file -p refs/notes/many_notes:de/adbeef > actual &&
-	test_cmp expect_non-note3 actual
-
-'
-
-# Change the notes for the three top commits
-test_tick
-cat >input <<INPUT_END
-commit refs/notes/many_notes
-committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE
-data <<COMMIT
-changing notes for the top three commits
-COMMIT
-from refs/notes/many_notes^0
-INPUT_END
-
-rm expect
-i=$num_commits
-j=0
-while test $j -lt 3
-do
-	cat >>input <<INPUT_END
-N inline refs/heads/many_commits~$j
-data <<EOF
-changed note for commit #$i
-EOF
-INPUT_END
-	cat >>expect <<EXPECT_END
-    commit #$i
-    changed note for commit #$i
-EXPECT_END
-	i=$(($i - 1))
-	j=$(($j + 1))
-done
-
-test_expect_success 'change a few existing notes' '
-
-	git fast-import <input &&
-	GIT_NOTES_REF=refs/notes/many_notes git log -n3 refs/heads/many_commits |
-	    grep "^    " > actual &&
-	test_cmp expect actual
-
-'
-
-test_expect_success 'verify that changing notes respect existing fanout' '
-
-	# None of the entries in the top-level notes tree should be a full SHA1
-	git ls-tree --name-only refs/notes/many_notes |
-	while read path
-	do
-		if test $(expr length "$path") -ge $hexsz
-		then
-			return 1
-		fi
-	done
-
-'
-
-remaining_notes=10
-test_tick
-cat >input <<INPUT_END
-commit refs/notes/many_notes
-committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE
-data <<COMMIT
-removing all notes but $remaining_notes
-COMMIT
-from refs/notes/many_notes^0
-INPUT_END
-
-i=$(($num_commits - $remaining_notes))
-for sha1 in $(git rev-list -n $i refs/heads/many_commits)
-do
-	cat >>input <<INPUT_END
-N $ZERO_OID $sha1
-INPUT_END
-done
-
-i=$num_commits
-rm expect
-while test $i -gt 0
-do
-	cat >>expect <<EXPECT_END
-    commit #$i
-EXPECT_END
-	if test $i -le $remaining_notes
-	then
-		cat >>expect <<EXPECT_END
-    note for commit #$i
-EXPECT_END
-	fi
-	i=$(($i - 1))
-done
-
-test_expect_success 'remove lots of notes' '
-
-	git fast-import <input &&
-	GIT_NOTES_REF=refs/notes/many_notes git log refs/heads/many_commits |
-	    grep "^    " > actual &&
-	test_cmp expect actual
-
-'
-
-test_expect_success 'verify that removing notes trigger fanout consolidation' '
-	# All entries in the top-level notes tree should be a full SHA1
-	git ls-tree --name-only -r refs/notes/many_notes |
-	while read path
-	do
-		# Explicitly ignore the non-note paths
-		test "$path" = "foobar/non-note.txt" && continue
-		test "$path" = "deadbeef" && continue
-		test "$path" = "de/adbeef" && continue
-
-		if test $(expr length "$path") -ne $hexsz
-		then
-			return 1
-		fi
-	done
-
-'
-
-test_expect_success 'verify that non-notes are untouched by a fanout change' '
-
-	git cat-file -p refs/notes/many_notes:foobar/non-note.txt > actual &&
-	test_cmp expect_non-note1 actual &&
-	git cat-file -p refs/notes/many_notes:deadbeef > actual &&
-	test_cmp expect_non-note2 actual &&
-	git cat-file -p refs/notes/many_notes:de/adbeef > actual &&
-	test_cmp expect_non-note3 actual
-
-'
-
-
-rm input expect
-num_notes_refs=10
-num_commits=16
-some_commits=8
-# Create commits
-fast_import_commits "refs/heads/more_commits" $num_commits input
-# Create one note per above commit per notes ref
-i=0
-while test $i -lt $num_notes_refs
-do
-	i=$(($i + 1))
-	fast_import_notes "refs/notes/more_notes_$i" $num_commits input
-done
-# Trigger branch reloading in git-fast-import by repeating the note creation
-i=0
-while test $i -lt $num_notes_refs
-do
-	i=$(($i + 1))
-	fast_import_notes "refs/notes/more_notes_$i" $some_commits input " (2)"
-done
-# Finally create the expected output from the notes in refs/notes/more_notes_1
-i=$num_commits
-while test $i -gt 0
-do
-	note_data="note for commit #$i"
-	if test $i -le $some_commits
-	then
-		note_data="$note_data (2)"
-	fi
-	cat >>expect <<EXPECT_END
-    commit #$i
-    $note_data
-EXPECT_END
-	i=$(($i - 1))
-done
-
-test_expect_success "add notes to $num_commits commits in each of $num_notes_refs refs" '
-
-	git fast-import --active-branches=5 <input &&
-	GIT_NOTES_REF=refs/notes/more_notes_1 git log refs/heads/more_commits |
-	    grep "^    " > actual &&
-	test_cmp expect actual
-
-'
-
-test_done