about summary refs log tree commit diff
path: root/third_party/git/t/t2405-worktree-submodule.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/t2405-worktree-submodule.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/t2405-worktree-submodule.sh')
-rwxr-xr-xthird_party/git/t/t2405-worktree-submodule.sh90
1 files changed, 0 insertions, 90 deletions
diff --git a/third_party/git/t/t2405-worktree-submodule.sh b/third_party/git/t/t2405-worktree-submodule.sh
deleted file mode 100755
index e1b2bfd87e0d..000000000000
--- a/third_party/git/t/t2405-worktree-submodule.sh
+++ /dev/null
@@ -1,90 +0,0 @@
-#!/bin/sh
-
-test_description='Combination of submodules and multiple worktrees'
-
-. ./test-lib.sh
-
-base_path=$(pwd -P)
-
-test_expect_success 'setup: create origin repos'  '
-	git init origin/sub &&
-	test_commit -C origin/sub file1 &&
-	git init origin/main &&
-	test_commit -C origin/main first &&
-	git -C origin/main submodule add ../sub &&
-	git -C origin/main commit -m "add sub" &&
-	test_commit -C origin/sub "file1 updated" file1 file1updated file1updated &&
-	git -C origin/main/sub pull &&
-	git -C origin/main add sub &&
-	git -C origin/main commit -m "sub updated"
-'
-
-test_expect_success 'setup: clone superproject to create main worktree' '
-	git clone --recursive "$base_path/origin/main" main
-'
-
-rev1_hash_main=$(git --git-dir=origin/main/.git show --pretty=format:%h -q "HEAD~1")
-rev1_hash_sub=$(git --git-dir=origin/sub/.git show --pretty=format:%h -q "HEAD~1")
-
-test_expect_success 'add superproject worktree' '
-	git -C main worktree add "$base_path/worktree" "$rev1_hash_main"
-'
-
-test_expect_failure 'submodule is checked out just after worktree add' '
-	git -C worktree diff --submodule master"^!" >out &&
-	grep "file1 updated" out
-'
-
-test_expect_success 'add superproject worktree and initialize submodules' '
-	git -C main worktree add "$base_path/worktree-submodule-update" "$rev1_hash_main" &&
-	git -C worktree-submodule-update submodule update
-'
-
-test_expect_success 'submodule is checked out just after submodule update in linked worktree' '
-	git -C worktree-submodule-update diff --submodule master"^!" >out &&
-	grep "file1 updated" out
-'
-
-test_expect_success 'add superproject worktree and manually add submodule worktree' '
-	git -C main worktree add "$base_path/linked_submodule" "$rev1_hash_main" &&
-	git -C main/sub worktree add "$base_path/linked_submodule/sub" "$rev1_hash_sub"
-'
-
-test_expect_success 'submodule is checked out after manually adding submodule worktree' '
-	git -C linked_submodule diff --submodule master"^!" >out &&
-	grep "file1 updated" out
-'
-
-test_expect_success 'checkout --recurse-submodules uses $GIT_DIR for submodules in a linked worktree' '
-	git -C main worktree add "$base_path/checkout-recurse" --detach  &&
-	git -C checkout-recurse submodule update --init &&
-	echo "gitdir: ../../main/.git/worktrees/checkout-recurse/modules/sub" >expect-gitfile &&
-	cat checkout-recurse/sub/.git >actual-gitfile &&
-	test_cmp expect-gitfile actual-gitfile &&
-	git -C main/sub rev-parse HEAD >expect-head-main &&
-	git -C checkout-recurse checkout --recurse-submodules HEAD~1 &&
-	cat checkout-recurse/sub/.git >actual-gitfile &&
-	git -C main/sub rev-parse HEAD >actual-head-main &&
-	test_cmp expect-gitfile actual-gitfile &&
-	test_cmp expect-head-main actual-head-main
-'
-
-test_expect_success 'core.worktree is removed in $GIT_DIR/modules/<name>/config, not in $GIT_COMMON_DIR/modules/<name>/config' '
-	echo "../../../sub" >expect-main &&
-	git -C main/sub config --get core.worktree >actual-main &&
-	test_cmp expect-main actual-main &&
-	echo "../../../../../../checkout-recurse/sub" >expect-linked &&
-	git -C checkout-recurse/sub config --get core.worktree >actual-linked &&
-	test_cmp expect-linked actual-linked &&
-	git -C checkout-recurse checkout --recurse-submodules first &&
-	test_expect_code 1 git -C main/.git/worktrees/checkout-recurse/modules/sub config --get core.worktree >linked-config &&
-	test_must_be_empty linked-config &&
-	git -C main/sub config --get core.worktree >actual-main &&
-	test_cmp expect-main actual-main
-'
-
-test_expect_success 'unsetting core.worktree does not prevent running commands directly against the submodule repository' '
-	git -C main/.git/worktrees/checkout-recurse/modules/sub log
-'
-
-test_done