Changed (BREAKING)
-
replace forwarding errors with metadata and recovery signals
Took a closer look over about 40% of the commit, skimmed/skipped the rest it. So not a complete rubber stamp.
Later-on, a lot of these explicit downcasts should be turned into quick classification checks.Return canonical
Exnerrors from reference operations andgix::Errorat
porcelain boundaries. Preserve native parser, filesystem, lock and custom
name-conversion sources instead of rewrapping them in operation-specific enums.Use documented
Metadatadictionaries for diagnostic paths, reference names,
input bytes and positions. Keep concrete signals for absent references,
malformed loose references, stale expected values, existing references and
missing committer identity. These support GitButler-style recovery without
string matching; stale reference values still require reconciliation before
retrying. Fetch only treats an absent referent as unborn, propagating malformed
referents and read failures.Remove empty error namespaces and duplicate conversions along with their
workspace callers. Preserve unterminated packed input and count peeled lines
when reporting iterator positions. -
migrate errors to gix-error
rubberstamp
But looked into it more to see why it has so much more code. The simple answer is that it basically doesn't use
gix-error,
but writes error types manually.
This needs rework. -
raise MSRV to Rust 1.88
The newly published
dua-core3.3 release used by linked-worktree removal
requires Rust 1.88, so raise every workspace crate and the advertised badge
together.Keep the MSRV checks buildable by selecting the latest
sysinfoandrusqlite
release lines that support Rust 1.88.
New Features
-
add convenient
RefEditconstructors
While reviewing the the actual API in detail with changes, I merely skimmed the
usage of them, also assuming that they incorrect usage would cause test failures.Cover standard updates and deletions, configurable reflog handling, prebuilt
changes, and symbolic-reference dereferencing.Adopt the constructors throughout the workspace so callers express intent
without repeating common defaults.
Bug Fixes
-
explain unsupported reftable storage when reading
HEADgix statusreports Git'srefs/heads/.invalidplaceholder as a
malformed symbolic reference, hiding that reftable is unsupported.
Recognize that exact target in the shared loose-reference decoder so
HEADlookup reports the unsupported backend. Other invalid symbolic
targets retain their existing validation errors.Git reference: checkout
1630431f326e15fcde608827b5ff38422528eb59,
refs.c::refs_create_refdir_stubs()andt/t0610-reftable-basics.sh.
Git writes this placeholder in ordinary and linked worktrees, and now
also uses it for alternate reference storage. Mention reftable without
assuming it is the only possible backend. Local Git2.50.1resolves
the real fixture'sHEADtorefs/heads/maindespite the placeholder.The new decoder regression failed with the original invalid-path error
before the fix. A nearby invalid target still reports name validation,
and the existing real-reftable repository test now checks the cause.
Commit Statistics
- 13 commits contributed to the release over the course of 32 calendar days.
- 33 days passed between releases.
- 5 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Merge pull request #2847 from GitoxideLabs/gix-error-completion (6356013)
- Replace forwarding errors with metadata and recovery signals (fb36616)
- Use borrowed error inspection throughout the workspace (daf73b5)
- Migrate errors to gix-error (1487c6f)
- Merge pull request #2989 from GitoxideLabs/error-conversion-review (4b9ff51)
- Merge pull request #2970 from GitoxideLabs/better-reftable-error (6b2f33d)
- Explain unsupported reftable storage when reading
HEAD(87ed136) - Merge pull request #2949 from GitoxideLabs/error-conversion-review (a095334)
- Raise MSRV to Rust 1.88 (4b42e0c)
- Add convenient
RefEditconstructors (f5b3feb) - Merge pull request #2955 from GitoxideLabs/transport-url-encoding (7e35849)
- Release gix-path v0.12.6, gix-error v0.3.2, gix-command v0.10.1, gix-transport v0.59.2 (888677a)
- Merge pull request #2932 from GitoxideLabs/fundamental-types-comp (6704303)