aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2026-11-13 20:27:48 +0000
committertv <tv@krebsco.de>2026-11-13 21:59:07 +0100
commitb34f53d538c5afa95fd0dc6dd81b56e4995b80c2 (patch)
treef8afac88dcb0a695f6eaf911fcdc7cdc36e62532 /README.md
parentef581c93f391919b35b903b93af45f33d90de15d (diff)
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.
Diffstat (limited to 'README.md')
-rw-r--r--README.md6
1 files changed, 4 insertions, 2 deletions
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.