about summary refs log tree commit diff
path: root/third_party/git/t/t1501-work-tree.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/t1501-work-tree.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/t1501-work-tree.sh')
-rwxr-xr-xthird_party/git/t/t1501-work-tree.sh446
1 files changed, 0 insertions, 446 deletions
diff --git a/third_party/git/t/t1501-work-tree.sh b/third_party/git/t/t1501-work-tree.sh
deleted file mode 100755
index b75558040ffd..000000000000
--- a/third_party/git/t/t1501-work-tree.sh
+++ /dev/null
@@ -1,446 +0,0 @@
-#!/bin/sh
-
-test_description='test separate work tree'
-. ./test-lib.sh
-
-test_expect_success 'setup' '
-	EMPTY_TREE=$(git write-tree) &&
-	EMPTY_BLOB=$(git hash-object -t blob --stdin </dev/null) &&
-	CHANGED_BLOB=$(echo changed | git hash-object -t blob --stdin) &&
-	EMPTY_BLOB7=$(echo $EMPTY_BLOB | sed "s/\(.......\).*/\1/") &&
-	CHANGED_BLOB7=$(echo $CHANGED_BLOB | sed "s/\(.......\).*/\1/") &&
-
-	mkdir -p work/sub/dir &&
-	mkdir -p work2 &&
-	mv .git repo.git
-'
-
-test_expect_success 'setup: helper for testing rev-parse' '
-	test_rev_parse() {
-		echo $1 >expected.bare &&
-		echo $2 >expected.inside-git &&
-		echo $3 >expected.inside-worktree &&
-		if test $# -ge 4
-		then
-			echo $4 >expected.prefix
-		fi &&
-
-		git rev-parse --is-bare-repository >actual.bare &&
-		git rev-parse --is-inside-git-dir >actual.inside-git &&
-		git rev-parse --is-inside-work-tree >actual.inside-worktree &&
-		if test $# -ge 4
-		then
-			git rev-parse --show-prefix >actual.prefix
-		fi &&
-
-		test_cmp expected.bare actual.bare &&
-		test_cmp expected.inside-git actual.inside-git &&
-		test_cmp expected.inside-worktree actual.inside-worktree &&
-		if test $# -ge 4
-		then
-			# rev-parse --show-prefix should output
-			# a single newline when at the top of the work tree,
-			# but we test for that separately.
-			test -z "$4" && test_must_be_empty actual.prefix ||
-			test_cmp expected.prefix actual.prefix
-		fi
-	}
-'
-
-test_expect_success 'setup: core.worktree = relative path' '
-	sane_unset GIT_WORK_TREE &&
-	GIT_DIR=repo.git &&
-	GIT_CONFIG="$(pwd)"/$GIT_DIR/config &&
-	export GIT_DIR GIT_CONFIG &&
-	git config core.worktree ../work
-'
-
-test_expect_success 'outside' '
-	test_rev_parse false false false
-'
-
-test_expect_success 'inside work tree' '
-	(
-		cd work &&
-		GIT_DIR=../repo.git &&
-		GIT_CONFIG="$(pwd)"/$GIT_DIR/config &&
-		test_rev_parse false false true ""
-	)
-'
-
-test_expect_success 'empty prefix is actually written out' '
-	echo >expected &&
-	(
-		cd work &&
-		GIT_DIR=../repo.git &&
-		GIT_CONFIG="$(pwd)"/$GIT_DIR/config &&
-		git rev-parse --show-prefix >../actual
-	) &&
-	test_cmp expected actual
-'
-
-test_expect_success 'subdir of work tree' '
-	(
-		cd work/sub/dir &&
-		GIT_DIR=../../../repo.git &&
-		GIT_CONFIG="$(pwd)"/$GIT_DIR/config &&
-		test_rev_parse false false true sub/dir/
-	)
-'
-
-test_expect_success 'setup: core.worktree = absolute path' '
-	sane_unset GIT_WORK_TREE &&
-	GIT_DIR=$(pwd)/repo.git &&
-	GIT_CONFIG=$GIT_DIR/config &&
-	export GIT_DIR GIT_CONFIG &&
-	git config core.worktree "$(pwd)/work"
-'
-
-test_expect_success 'outside' '
-	test_rev_parse false false false &&
-	(
-		cd work2 &&
-		test_rev_parse false false false
-	)
-'
-
-test_expect_success 'inside work tree' '
-	(
-		cd work &&
-		test_rev_parse false false true ""
-	)
-'
-
-test_expect_success 'subdir of work tree' '
-	(
-		cd work/sub/dir &&
-		test_rev_parse false false true sub/dir/
-	)
-'
-
-test_expect_success 'setup: GIT_WORK_TREE=relative (override core.worktree)' '
-	GIT_DIR=$(pwd)/repo.git &&
-	GIT_CONFIG=$GIT_DIR/config &&
-	git config core.worktree non-existent &&
-	GIT_WORK_TREE=work &&
-	export GIT_DIR GIT_CONFIG GIT_WORK_TREE
-'
-
-test_expect_success 'outside' '
-	test_rev_parse false false false &&
-	(
-		cd work2 &&
-		test_rev_parse false false false
-	)
-'
-
-test_expect_success 'inside work tree' '
-	(
-		cd work &&
-		GIT_WORK_TREE=. &&
-		test_rev_parse false false true ""
-	)
-'
-
-test_expect_success 'subdir of work tree' '
-	(
-		cd work/sub/dir &&
-		GIT_WORK_TREE=../.. &&
-		test_rev_parse false false true sub/dir/
-	)
-'
-
-test_expect_success 'setup: GIT_WORK_TREE=absolute, below git dir' '
-	mv work repo.git/work &&
-	mv work2 repo.git/work2 &&
-	GIT_DIR=$(pwd)/repo.git &&
-	GIT_CONFIG=$GIT_DIR/config &&
-	GIT_WORK_TREE=$(pwd)/repo.git/work &&
-	export GIT_DIR GIT_CONFIG GIT_WORK_TREE
-'
-
-test_expect_success 'outside' '
-	echo outside &&
-	test_rev_parse false false false
-'
-
-test_expect_success 'in repo.git' '
-	(
-		cd repo.git &&
-		test_rev_parse false true false
-	) &&
-	(
-		cd repo.git/objects &&
-		test_rev_parse false true false
-	) &&
-	(
-		cd repo.git/work2 &&
-		test_rev_parse false true false
-	)
-'
-
-test_expect_success 'inside work tree' '
-	(
-		cd repo.git/work &&
-		test_rev_parse false true true ""
-	)
-'
-
-test_expect_success 'subdir of work tree' '
-	(
-		cd repo.git/work/sub/dir &&
-		test_rev_parse false true true sub/dir/
-	)
-'
-
-test_expect_success 'find work tree from repo' '
-	echo sub/dir/untracked >expected &&
-	cat <<-\EOF >repo.git/work/.gitignore &&
-	expected.*
-	actual.*
-	.gitignore
-	EOF
-	>repo.git/work/sub/dir/untracked &&
-	(
-		cd repo.git &&
-		git ls-files --others --exclude-standard >../actual
-	) &&
-	test_cmp expected actual
-'
-
-test_expect_success 'find work tree from work tree' '
-	echo sub/dir/tracked >expected &&
-	>repo.git/work/sub/dir/tracked &&
-	(
-		cd repo.git/work/sub/dir &&
-		git --git-dir=../../.. add tracked
-	) &&
-	(
-		cd repo.git &&
-		git ls-files >../actual
-	) &&
-	test_cmp expected actual
-'
-
-test_expect_success '_gently() groks relative GIT_DIR & GIT_WORK_TREE' '
-	(
-		cd repo.git/work/sub/dir &&
-		GIT_DIR=../../.. &&
-		GIT_WORK_TREE=../.. &&
-		GIT_PAGER= &&
-		export GIT_DIR GIT_WORK_TREE GIT_PAGER &&
-
-		git diff --exit-code tracked &&
-		echo changed >tracked &&
-		test_must_fail git diff --exit-code tracked
-	)
-'
-
-test_expect_success 'diff-index respects work tree under .git dir' '
-	cat >diff-index-cached.expected <<-EOF &&
-	:000000 100644 $ZERO_OID $EMPTY_BLOB A	sub/dir/tracked
-	EOF
-	cat >diff-index.expected <<-EOF &&
-	:000000 100644 $ZERO_OID $ZERO_OID A	sub/dir/tracked
-	EOF
-
-	(
-		GIT_DIR=repo.git &&
-		GIT_WORK_TREE=repo.git/work &&
-		export GIT_DIR GIT_WORK_TREE &&
-		git diff-index $EMPTY_TREE >diff-index.actual &&
-		git diff-index --cached $EMPTY_TREE >diff-index-cached.actual
-	) &&
-	test_cmp diff-index.expected diff-index.actual &&
-	test_cmp diff-index-cached.expected diff-index-cached.actual
-'
-
-test_expect_success 'diff-files respects work tree under .git dir' '
-	cat >diff-files.expected <<-EOF &&
-	:100644 100644 $EMPTY_BLOB $ZERO_OID M	sub/dir/tracked
-	EOF
-
-	(
-		GIT_DIR=repo.git &&
-		GIT_WORK_TREE=repo.git/work &&
-		export GIT_DIR GIT_WORK_TREE &&
-		git diff-files >diff-files.actual
-	) &&
-	test_cmp diff-files.expected diff-files.actual
-'
-
-test_expect_success 'git diff respects work tree under .git dir' '
-	cat >diff-TREE.expected <<-EOF &&
-	diff --git a/sub/dir/tracked b/sub/dir/tracked
-	new file mode 100644
-	index 0000000..$CHANGED_BLOB7
-	--- /dev/null
-	+++ b/sub/dir/tracked
-	@@ -0,0 +1 @@
-	+changed
-	EOF
-	cat >diff-TREE-cached.expected <<-EOF &&
-	diff --git a/sub/dir/tracked b/sub/dir/tracked
-	new file mode 100644
-	index 0000000..$EMPTY_BLOB7
-	EOF
-	cat >diff-FILES.expected <<-EOF &&
-	diff --git a/sub/dir/tracked b/sub/dir/tracked
-	index $EMPTY_BLOB7..$CHANGED_BLOB7 100644
-	--- a/sub/dir/tracked
-	+++ b/sub/dir/tracked
-	@@ -0,0 +1 @@
-	+changed
-	EOF
-
-	(
-		GIT_DIR=repo.git &&
-		GIT_WORK_TREE=repo.git/work &&
-		export GIT_DIR GIT_WORK_TREE &&
-		git diff $EMPTY_TREE >diff-TREE.actual &&
-		git diff --cached $EMPTY_TREE >diff-TREE-cached.actual &&
-		git diff >diff-FILES.actual
-	) &&
-	test_cmp diff-TREE.expected diff-TREE.actual &&
-	test_cmp diff-TREE-cached.expected diff-TREE-cached.actual &&
-	test_cmp diff-FILES.expected diff-FILES.actual
-'
-
-test_expect_success 'git grep' '
-	echo dir/tracked >expected.grep &&
-	(
-		cd repo.git/work/sub &&
-		GIT_DIR=../.. &&
-		GIT_WORK_TREE=.. &&
-		export GIT_DIR GIT_WORK_TREE &&
-		git grep -l changed >../../../actual.grep
-	) &&
-	test_cmp expected.grep actual.grep
-'
-
-test_expect_success 'git commit' '
-	(
-		cd repo.git &&
-		GIT_DIR=. GIT_WORK_TREE=work git commit -a -m done
-	)
-'
-
-test_expect_success 'absolute pathspec should fail gracefully' '
-	(
-		cd repo.git &&
-		test_might_fail git config --unset core.worktree &&
-		test_must_fail git log HEAD -- /home
-	)
-'
-
-test_expect_success 'make_relative_path handles double slashes in GIT_DIR' '
-	>dummy_file &&
-	echo git --git-dir="$(pwd)//repo.git" --work-tree="$(pwd)" add dummy_file &&
-	git --git-dir="$(pwd)//repo.git" --work-tree="$(pwd)" add dummy_file
-'
-
-test_expect_success 'relative $GIT_WORK_TREE and git subprocesses' '
-	GIT_DIR=repo.git GIT_WORK_TREE=repo.git/work \
-	test-tool subprocess --setup-work-tree rev-parse --show-toplevel >actual &&
-	echo "$(pwd)/repo.git/work" >expected &&
-	test_cmp expected actual
-'
-
-test_expect_success 'Multi-worktree setup' '
-	mkdir work &&
-	mkdir -p repo.git/repos/foo &&
-	cp repo.git/HEAD repo.git/index repo.git/repos/foo &&
-	{ cp repo.git/sharedindex.* repo.git/repos/foo || :; } &&
-	sane_unset GIT_DIR GIT_CONFIG GIT_WORK_TREE
-'
-
-test_expect_success 'GIT_DIR set (1)' '
-	echo "gitdir: repo.git/repos/foo" >gitfile &&
-	echo ../.. >repo.git/repos/foo/commondir &&
-	(
-		cd work &&
-		GIT_DIR=../gitfile git rev-parse --git-common-dir >actual &&
-		test-tool path-utils real_path "$TRASH_DIRECTORY/repo.git" >expect &&
-		test_cmp expect actual
-	)
-'
-
-test_expect_success 'GIT_DIR set (2)' '
-	echo "gitdir: repo.git/repos/foo" >gitfile &&
-	echo "$(pwd)/repo.git" >repo.git/repos/foo/commondir &&
-	(
-		cd work &&
-		GIT_DIR=../gitfile git rev-parse --git-common-dir >actual &&
-		test-tool path-utils real_path "$TRASH_DIRECTORY/repo.git" >expect &&
-		test_cmp expect actual
-	)
-'
-
-test_expect_success 'Auto discovery' '
-	echo "gitdir: repo.git/repos/foo" >.git &&
-	echo ../.. >repo.git/repos/foo/commondir &&
-	(
-		cd work &&
-		git rev-parse --git-common-dir >actual &&
-		test-tool path-utils real_path "$TRASH_DIRECTORY/repo.git" >expect &&
-		test_cmp expect actual &&
-		echo haha >data1 &&
-		git add data1 &&
-		git ls-files --full-name :/ | grep data1 >actual &&
-		echo work/data1 >expect &&
-		test_cmp expect actual
-	)
-'
-
-test_expect_success '$GIT_DIR/common overrides core.worktree' '
-	mkdir elsewhere &&
-	git --git-dir=repo.git config core.worktree "$TRASH_DIRECTORY/elsewhere" &&
-	echo "gitdir: repo.git/repos/foo" >.git &&
-	echo ../.. >repo.git/repos/foo/commondir &&
-	(
-		cd work &&
-		git rev-parse --git-common-dir >actual &&
-		test-tool path-utils real_path "$TRASH_DIRECTORY/repo.git" >expect &&
-		test_cmp expect actual &&
-		echo haha >data2 &&
-		git add data2 &&
-		git ls-files --full-name :/ | grep data2 >actual &&
-		echo work/data2 >expect &&
-		test_cmp expect actual
-	)
-'
-
-test_expect_success '$GIT_WORK_TREE overrides $GIT_DIR/common' '
-	echo "gitdir: repo.git/repos/foo" >.git &&
-	echo ../.. >repo.git/repos/foo/commondir &&
-	(
-		cd work &&
-		echo haha >data3 &&
-		git --git-dir=../.git --work-tree=. add data3 &&
-		git ls-files --full-name -- :/ | grep data3 >actual &&
-		echo data3 >expect &&
-		test_cmp expect actual
-	)
-'
-
-test_expect_success 'error out gracefully on invalid $GIT_WORK_TREE' '
-	(
-		GIT_WORK_TREE=/.invalid/work/tree &&
-		export GIT_WORK_TREE &&
-		test_expect_code 128 git rev-parse
-	)
-'
-
-test_expect_success 'refs work with relative gitdir and work tree' '
-	git init relative &&
-	git -C relative commit --allow-empty -m one &&
-	git -C relative commit --allow-empty -m two &&
-
-	GIT_DIR=relative/.git GIT_WORK_TREE=relative git reset HEAD^ &&
-
-	git -C relative log -1 --format=%s >actual &&
-	echo one >expect &&
-	test_cmp expect actual
-'
-
-test_done