diff options
| author | tv <tv@krebsco.de> | 2026-11-13 20:28:00 +0000 |
|---|---|---|
| committer | tv <tv@krebsco.de> | 2026-11-13 21:59:13 +0100 |
| commit | 24fd14b1e6de45def6a59b65486f5035ac486ee3 (patch) | |
| tree | ff9928227578c3befa83bfcdee41548aa978efe8 /README.md | |
| parent | b34f53d538c5afa95fd0dc6dd81b56e4995b80c2 (diff) | |
populate: refer to flakes as git+file: only with a usable .git
Writing the lock file of a git+file: flake, Nix runs Git, with the
repository's configuration and hooks, which may run commands. A .git
in a source's directory can come from anywhere, e.g. one planted in a
materialized flake, or one a file source keeps. So drawing inputs
refers to a flake as git+file: only if git_problems finds nothing wrong
with its .git directory, the way git sources check their work trees,
and else as path:.
lock-foreign-git plants a .git in a materialized flake and in a file
source that keeps it, whose configuration names an fsmonitor command.
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -724,7 +724,10 @@ drawing an input from a source with a generated flake uses that flake. automatically. Sources in a Git work tree are referred to as `git+file:` (with submodules if -there are any), all other sources as `path:`, with symlinks resolved. Lock +there are any), all other sources as `path:`, with symlinks resolved. Nix +runs Git in a `git+file:` flake, so that's only for work trees whose `.git` +directory a `git` source would use, see +[The target directory](#the-target-directory). Lock files get rewritten or generated on every run, so they match the sources. Copies of `flake` and `flake-input` sources get made again only if the delivered store path, the patches, or the sources they draw inputs from |
