about summary refs log tree commit diff
path: root/third_party/git/t/t5316-pack-delta-depth.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/t5316-pack-delta-depth.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/t5316-pack-delta-depth.sh')
-rwxr-xr-xthird_party/git/t/t5316-pack-delta-depth.sh97
1 files changed, 0 insertions, 97 deletions
diff --git a/third_party/git/t/t5316-pack-delta-depth.sh b/third_party/git/t/t5316-pack-delta-depth.sh
deleted file mode 100755
index 0f06c40eb13f..000000000000
--- a/third_party/git/t/t5316-pack-delta-depth.sh
+++ /dev/null
@@ -1,97 +0,0 @@
-#!/bin/sh
-
-test_description='pack-objects breaks long cross-pack delta chains'
-. ./test-lib.sh
-
-# This mirrors a repeated push setup:
-#
-# 1. A client repeatedly modifies some files, makes a
-#      commit, and pushes the result. It does this N times
-#      before we get around to repacking.
-#
-# 2. Each push generates a thin pack with the new version of
-#    various objects. Let's consider some file in the root tree
-#    which is updated in each commit.
-#
-#    When generating push number X, we feed commit X-1 (and
-#    thus blob X-1) as a preferred base. The resulting pack has
-#    blob X as a thin delta against blob X-1.
-#
-#    On the receiving end, "index-pack --fix-thin" will
-#    complete the pack with a base copy of blob X-1.
-#
-# 3. In older versions of git, if we used the delta from
-#    pack X, then we'd always find blob X-1 as a base in the
-#    same pack (and generate a fresh delta).
-#
-#    But with the pack mru, we jump from delta to delta
-#    following the traversal order:
-#
-#      a. We grab blob X from pack X as a delta, putting it at
-#         the tip of our mru list.
-#
-#      b. Eventually we move onto commit X-1. We need other
-#         objects which are only in pack X-1 (in the test code
-#         below, it's the containing tree). That puts pack X-1
-#         at the tip of our mru list.
-#
-#      c. Eventually we look for blob X-1, and we find the
-#         version in pack X-1 (because it's the mru tip).
-#
-# Now we have blob X as a delta against X-1, which is a delta
-# against X-2, and so forth.
-#
-# In the real world, these small pushes would get exploded by
-# unpack-objects rather than "index-pack --fix-thin", but the
-# same principle applies to larger pushes (they only need one
-# repeatedly-modified file to generate the delta chain).
-
-test_expect_success 'create series of packs' '
-	test-tool genrandom foo 4096 >content &&
-	prev= &&
-	for i in $(test_seq 1 10)
-	do
-		cat content >file &&
-		echo $i >>file &&
-		git add file &&
-		git commit -m $i &&
-		cur=$(git rev-parse HEAD^{tree}) &&
-		{
-			test -n "$prev" && echo "-$prev"
-			echo $cur
-			echo "$(git rev-parse :file) file"
-		} | git pack-objects --stdout >tmp &&
-		git index-pack --stdin --fix-thin <tmp || return 1
-		prev=$cur
-	done
-'
-
-max_chain() {
-	git index-pack --verify-stat-only "$1" >output &&
-	perl -lne '
-	  /chain length = (\d+)/ and $len = $1;
-	  END { print $len }
-	' output
-}
-
-# Note that this whole setup is pretty reliant on the current
-# packing heuristics. We double-check that our test case
-# actually produces a long chain. If it doesn't, it should be
-# adjusted (or scrapped if the heuristics have become too unreliable)
-test_expect_success 'packing produces a long delta' '
-	# Use --window=0 to make sure we are seeing reused deltas,
-	# not computing a new long chain.
-	pack=$(git pack-objects --all --window=0 </dev/null pack) &&
-	echo 9 >expect &&
-	max_chain pack-$pack.pack >actual &&
-	test_i18ncmp expect actual
-'
-
-test_expect_success '--depth limits depth' '
-	pack=$(git pack-objects --all --depth=5 </dev/null pack) &&
-	echo 5 >expect &&
-	max_chain pack-$pack.pack >actual &&
-	test_i18ncmp expect actual
-'
-
-test_done