There are two major features: 30x and more performance on Windows, and --ignore-from <file> support.
This makes this release the best one yet, and I do hope that I can last a week or more until the next one.
New Features
-
add --ignore-from to exclude paths with gitignore-style patterns
Reads gitignore-syntax patterns from one or more files and leaves everything
they match out of the report, in both aggregate and interactive mode. This is
the equivalent of rsync's --exclude-from and restic's --exclude-file, so the
same pattern file can answer "how much of this would actually be backed up?".Matching is powered by gix-ignore, which is already a dependency, so negation,
anchoring,**and directory-only patterns all behave exactly like Git.
Excluded directories are pruned from the walk rather than only hidden, and
excluded top-level paths are dropped before the walk so they are absent from
the report instead of appearing as empty.
Bug Fixes
-
propagate background root device errors
Background traversal replaced failed root-device lookups with device ID
zero. Readable root metadata could then be rejected as cross-device while the
traversal incorrectly retained a successful error count.Skip roots whose lookup fails and carry their per-root errors in the traversal
completion event, restoring the previous statistics and exit status. Keep
interleaved overlapping and duplicate roots isolated by including each root path
Arc allocation in private directory-map keys while preserving public traversal
event types. -
propagate aggregate root device errors
A failed root-device lookup was replaced with device ID zero after the parallel
traversal rewrite. For a dangling symlink, symlink metadata remained readable
but failed the device check, hiding the initialization error and producing a
successful exit status.Count the lookup failure on its root, mark that root complete for ordered
output, and omit it from traversal. Flush completed roots after traversal
because failed roots emit no completion event.Keep all roots in the shared
parallel traversal pool; when hard links are deduplicated, per-root attribution
is scheduling-dependent while the total remains correct, in the name of performance.
Commit Statistics
- 14 commits contributed to the release.
- 2 days passed between releases.
- 3 commits were understood as conventional.
- 1 unique issue was worked on: #302
Commit Details
view details
- #302
- Avoid per-entry Windows metadata queries (9831b1e)
- Uncategorized
- Prepare changelog prior to release (2b78d30)
- Merge pull request #359 from Byron/windows-performance (bdee013)
- Review (d784e02)
- Simplify platform-specific walker entries (f94fe6d)
- Address CI comment about reader type complexity (542e36a)
- Use Result::is_ok_and in entry checks (29b9c8c)
- Optimize Windows directory metadata scheduling (e36a66d)
- Merge pull request #358 from pelazas/feat/ignore-from (1db53ae)
- Review (af83aa5)
- Add --ignore-from to exclude paths with gitignore-style patterns (27d16f0)
- Merge pull request #357 from Byron/crossdev-fix (d7b1503)
- Propagate background root device errors (b4d944e)
- Propagate aggregate root device errors (01d7e00)