aboutsummaryrefslogtreecommitdiffstats
path: root/CHANGELOG.md
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2026-11-13 21:09:04 +0000
committertv <tv@krebsco.de>2026-11-13 22:14:38 +0100
commit0273a55087e2614323d6ebd145b08c56b370a483 (patch)
tree14c5e7ea01a862d2d359319236c54d9760ea1ddd /CHANGELOG.md
parentc3ca6d4b991ea24192ac4ddec156d0530b462c3e (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. 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.
Diffstat (limited to 'CHANGELOG.md')
-rw-r--r--CHANGELOG.md3
1 files changed, 3 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 767652b..3875460 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,9 @@
- Git can't take a `git` source's `url` or `ref`, or a `pass` source's
`name`, for an option.
+- `git` sources also refuse work trees whose `.git` directory contains
+ hooks, or in which a submodule's `.git` isn't a file naming a repository
+ in `.git/modules`, unless `reclone` is set.
- `git` sources with a branch or tag as `ref` follow it: populate fetches
the branch or tag on every run, and resets the work tree to what it
fetched.