From 0273a55087e2614323d6ebd145b08c56b370a483 Mon Sep 17 00:00:00 2001 From: tv Date: Fri, 13 Nov 2026 21:09:04 +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. It's a shell function now, taking the work tree at run time, so drawing inputs can use it too. 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 3bef68c..7344135 100644 --- a/README.md +++ b/README.md @@ -316,8 +316,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