Repository navigation
v0.11.0
·
121 commits
to master
since this release
- Added support for a
[shared]top-level config table that maps named keys to glob lists. Commands can reference these keys viashared-includeandshared-excludefields to avoid duplicating long lists across commands. GH #73. - Added
python,typescript, andrubycomponents toprecious config initand to theexamplesdirectory. GH #95. - When all paths passed on the command line are excluded, precious now exits with a clearer error message. In addition, it has different errors for when all paths given on the CLI are ignored versus when
--allis specified but all the paths it can find are excluded. Both exit with an error status. - Fixed a bug where bare directory names in
excludepatterns (e.g.,target) did not exclude files inside that directory. Nowexclude = ["target"]works exactly like a.gitignoreentry — it excludes the directory and all of its contents. Previously you had to writetarget/**/*to get this behavior; that form still works and is equivalent. - Precious now fails fast with a clear error when it encounters a file path that is not valid UTF-8, instead of silently doing a lossy conversion. Previously non-UTF-8 paths were corrupted at the
git ls-filesdecode step and at subprocess-argument construction. The error message includes both a human-readable lossy approximation and the exact raw bytes of the path. Switching the internalgit ls-files/git diffinvocations to-zalso fixes handling of valid non-ASCII names likecafé.txtthat git would otherwise C-quote. - Reduced filesystem syscalls when finding files. In git modes and
--allmode, precious previously canonicalized every file path individually. Now the relevant root directory (project root, git root, or walk root) is canonicalized once and per-file relative paths are computed via path arithmetic. No user-visible behavior change. - The
invoke.per-file-or-once,invoke.per-file-or-dirandinvoke.per-dir-or-onceconfigurations are no longer considered experimental.