From b34f53d538c5afa95fd0dc6dd81b56e4995b80c2 Mon Sep 17 00:00:00 2001 From: tv Date: Fri, 13 Nov 2026 20:27:48 +0000 Subject: populate: check the hooks and submodules of Git work trees git submodule update uses the .git of a submodule as it finds it in the work tree: a repository of its own, with configuration that runs commands, or a file naming a repository elsewhere. So git_problems also requires each .git below the work tree to be a file naming a repository in .git/modules. And it refuses hooks in .git/hooks, which populate's Git doesn't run, but Nix's does, writing the lock file of a flake in a git source. git-submodule plants a submodule's .git in the work tree: a repository of its own whose configuration names a filter, and a file naming a repository elsewhere. The fixture withsub has gitsrc as its submodule sub. --- tests/fixtures.sh | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'tests/fixtures.sh') diff --git a/tests/fixtures.sh b/tests/fixtures.sh index ccd55a0..85701a1 100755 --- a/tests/fixtures.sh +++ b/tests/fixtures.sh @@ -307,6 +307,23 @@ mkdir /fixtures/git git clone -q --bare /fixtures/gitsrc /fixtures/git/gitsrc.git git -C /fixtures/git/gitsrc.git config uploadpack.allowReachableSHA1InWant true +# withsub: a Git repository with gitsrc as its submodule sub, served by git +# daemon like gitsrc, which the tests reach as git://deployer/gitsrc.git. +mkdir /fixtures/withsub +cat > /fixtures/withsub/.gitmodules <<'GIT' +[submodule "sub"] + path = sub + url = git://deployer/gitsrc.git +GIT +( + cd /fixtures/withsub + git init -q -b master + git update-index --add --cacheinfo 160000,"$git_head",sub + git add .gitmodules + git commit -q -m withsub +) +git clone -q --bare /fixtures/withsub /fixtures/git/withsub.git + # pass: password stores with x/a, without and with Git. if ! gpg --list-secret-keys spam@krebsco.de >/dev/null 2>&1; then gpg --batch --passphrase '' --quick-gen-key spam@krebsco.de default default never -- cgit v1.3.1