New Features
-
accept existing Windows filesystem metadata
Once again, skipped through the tests real quick, but deleted some as well
as they seemed overkill.The Windows status cache duplicated index-stat normalization and maintained
its own cached/live metadata adapter. Timestamp selection, zeroed identity
fields, size truncation, and mode interpretation could therefore drift from
the livegix-indexpath.Add a documented Windows-only
From<std::fs::Metadata>conversion that wraps
already obtained metadata without filesystem access. Callers remain
responsible for obtaining no-follow metadata. Keep Unix excluded because
its wrapper deliberately uses inode change time rather than birth time.Store wrapped metadata in the lazy, per-worker, per-status-call directory
cache and borrow it during status computation. Live metadata is locally
owned and borrowed through the same path, so no cloning support is needed.
Remove the cachedStatrecord and cached/live adapter, using
Stat::from_fs(),Mode::change_to_match_fs(), and metadata accessors for
both sources. Retain the publicchange_to_match_fs_with_values()API.Validate enumeration metadata with
Stat::from_fs()before caching it.
Pre-epoch timestamps still trigger live fallback, preserving status error
context, concrete causes, and early returns. Unavailable timestamps now
remain cacheable and use the shared Unix-epoch default, matching live
interpretation. Retain exact-name lookup, lossless cache keys, successful
entries alongside unusable ones, and fallback after enumeration failures.
WindowsDirEntry::metadata()still supplies no-follow enumeration data
without per-entry path metadata calls; fullu64sizes remain available
independently of truncated index sizes.Extend parity tests for executable index mode with both executable-bit
settings, distinct subsecond creation/modification times, pre-epoch creation
and modification times, and a sparse file of 4 GiB + 123 bytes. Verify actual
cached/live status results, timestamp error propagation, intent-to-add early
returns, and wrapping a metadata snapshot after its source file is removed.
Retain junction, file/directory symlink, invalid-name, exact-case, missing
entry, and failed-enumeration coverage.
Commit Statistics
- 6 commits contributed to the release over the course of 14 calendar days.
- 14 days passed between releases.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Merge pull request #3071 from GitoxideLabs/safe-fscache (46f7c7d)
- Accept existing Windows filesystem metadata (3c60873)
- Merge pull request #3056 from GitoxideLabs/worktree-sparse-checkout (ca9eb08)
- Merge pull request #3053 from GitoxideLabs/various-improvements (2d8dcc4)
- Release gix-error v0.5.1, gix-utils v0.5.1 (6d1b686)
- Merge pull request #3048 from GitoxideLabs/new-release (5fccccf)