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 /README.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 'README.md')
| -rw-r--r-- | README.md | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -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. |
