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. --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'README.md') diff --git a/README.md b/README.md index 93cd2ca..e46ef4b 100644 --- a/README.md +++ b/README.md @@ -333,8 +333,10 @@ everything else. It doesn't change or remove anything outside: `git` source as well. * A `git` source only uses a work tree whose `.git` directory contains no - symlinks, no `commondir` file and no linked work trees, and only the - configuration that `git clone` and populate write. Otherwise Git's + symlinks, no `commondir` file, no linked work trees, and no hooks, and + only the configuration that `git clone` and populate write, and in which + each `.git` of a submodule is a file naming a repository in + `.git/modules`. Otherwise Git's commands could change what's elsewhere, or run commands, so populating fails, telling what's wrong, unless the source's `reclone` is set. Git runs no hooks. -- cgit v1.3.1