diff options
| author | tv <tv@krebsco.de> | 2026-11-13 21:09:04 +0000 |
|---|---|---|
| committer | tv <tv@krebsco.de> | 2026-11-13 22:14:38 +0100 |
| commit | 0273a55087e2614323d6ebd145b08c56b370a483 (patch) | |
| tree | 14c5e7ea01a862d2d359319236c54d9760ea1ddd /CHANGELOG.md | |
| parent | c3ca6d4b991ea24192ac4ddec156d0530b462c3e (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.md | 3 |
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. |
