pub const CONFIG_PROJECT_LONG: &str = "\
Inspect a repository's `.devprune.json`, or create it when missing. The file holds \
the per-repository overrides — `override_idle_days`, `min_size_mb`, `scan_depth`, \
`ignore`, `disable_daemon`, `disable_hooks` — and carries a `$schema` line so any \
editor with JSON Schema support validates and completes it.
`--update` refreshes the file's scaffolding (schema pointer, missing keys) while \
keeping every value you have set. A file that does not parse is refused, not reset — \
fix it, or pass `--update` deliberately.
Writing the file also records it in the repository's `.git/info/exclude`, so the \
config — one machine's preference, not part of the project — never shows up in \
`git status`. The shared, tracked `.gitignore` is never modified.
`--team` addresses `project.devprune.json` instead: same keys, same schema, and \
deliberately not excluded, because it is the half meant to be committed. Every key it \
names wins over `.devprune.json`; every key it leaves out is still yours to answer. It \
is created empty apart from the schema line for that reason. Nothing dev-prune writes \
on your behalf ever edits it.
Both files can also carry `prunable.directories`: directories no lockfile describes, \
each with the `rebuild` command that puts it back. Unlike every other key, the two \
files' lists add up rather than one winning — a team declaration never discards your \
own. Before deleting one, dev-prune checks that it is inside the repository, that Git \
is tracking nothing in it, and that the rebuild command's tool is on this machine.";