Release history
gitoxide releases
An idiomatic, lean, fast & safe pure Rust implementation of Git
All releases
199 shown
Config fmt, status untracked, remote refs list, replace maybe-async
Windows status cache, bisync replace, config lifetime-free, new features
Symlink handling + encodings + exec bits
- Parsed configuration files no longer carry input lifetimes; `File` and `Events` become lifetime‑free.
- `from_bytes_owned()` removed, unifying parsing under `Events::from_bytes()`.
- Submodule API now consumes owned `BString` values instead of `Cow` for paths.
- Lifetime‑free configuration handling via self‑contained backing buffer and lightweight refs (`EventRef`, `SectionRef`, etc.).
- Unified parsing entry point `Events::from_bytes()` with new traversal methods `iter()`, `frontmatter()`, and `sections()`.
- Simplified typed lookups returning `Result` instead of `Option<Cow>` and broader input support via `AsBStr`/`IntoBStringOpt`.
Full changelog
Changed (BREAKING)
- validate config value names internally and use
AsBStrOptfor value pushes.
This makes using the APIs much more convenient.
New Features (BREAKING)
-
make parsed configuration files lifetime-free
Store parsed configuration data in a self-contained backing buffer, with
event payloads represented as compact spans into it. This removes the
input lifetime fromFileandEvents, making parsed configurations
easier to return, store, move, and combine.Expose data through lightweight
EventRef,SectionRef,HeaderRef,
andBodyRefviews. This retains efficient borrowed access while keeping
ownership details out of the primary API.- Unify parsing under
Events::from_bytes()and remove
from_bytes_owned(). - Add
Events::iter(),frontmatter(), andsections()for
non-consuming traversal. - Return owned
BStringvalues from lookups, avoidingCowhandling. - Simplify optional typed lookups from
Option<Result<T, E>>to
Result<Option<T>, E>. - Accept common string and byte-string inputs through
AsBStrand
IntoBStringOpt. - Allow concise calls such as
new_section("remote", "origin")without
constructingOption<Cow<...>>. - Reduce mutable value and section handles to the lifetime of their
active file borrow.
Introduce explicit section ownership:
Sectionis self-contained and
can be removed, edited, and inserted into another file, while
SectionRefandSectionMutprovide borrowed access.Preserve original subsection spelling for serialization while retaining
decoded names for lookup. Configuration equality now also compares
section and value names case-insensitively, matching Git semantics.Add benchmarks covering section, value, subsection, and multi-value
lookups across configurations of varying sizes. - Unify parsing under
Bug Fixes (BREAKING)
-
Adapt gix-submodule to lifetime-free configuration files
Remove gix_config::File lifetime arguments throughout the public and internal
submodule APIs. Consume the newly owned configuration values directly when
validating paths, URLs, branches, and update modes.Additinoally, let
Submodule::path()returnBStringinstead of
a Cow.
Commit Statistics
- 12 commits contributed to the release.
- 31 days passed between releases.
- 3 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details- Uncategorized
- Update changelogs prior to release (cb6ec7d)
- Release gix-trace v0.1.21, gix-validate v0.11.3, gix-path v0.12.3, gix-utils v0.3.5, gix-config-value v0.19.0, gix-prompt v0.16.0, gix-sec v0.14.2, gix-url v0.37.0, gix-credentials v0.39.0, safety bump 18 crates (f0ec710)
- Merge pull request #2725 from GitoxideLabs/gix-config-improvements (5982dfe)
- Validate config value names internally and use
AsBStrOptfor value pushes. (0887485) - Merge pull request #2722 from GitoxideLabs/reasons (c16b5a1)
- Replace lint allowances with expectations (43ff87a)
- Merge pull request #2667 from GitoxideLabs/lifetime-free-config-parser (55b5158)
- Adapt gix-submodule to lifetime-free configuration files (f138664)
- Make parsed configuration files lifetime-free (0e3b35b)
- Merge pull request #2714 from GitoxideLabs/fix-credentials-parsing (cf3053a)
- Release gix-path v0.12.2, gix-error v0.2.5, gix-utils v0.3.4, gix-date v0.15.6, gix-url v0.36.2, gix-credentials v0.38.2 (27aec47)
- Merge pull request #2646 from GitoxideLabs/report (1b1541e)
- Adapt code consuming configuration APIs to handle new owned return types and `Result<T, E>` error propagation.
- Update any usage of deprecated lifetime‑bound configuration file handling to the new `gix_config::File` representation.
- Replaced globally feature‑selected `maybe-async` dependency with `bisync` 0.3 and re‑exported the locally selected macro mode from gix-protocol.
- Updated repository configuration storage, snapshots, overrides, and caches in `gix-config` to use lifetime‑free `gix_config::File` representation, removing artificial input lifetimes or conversions to `'static`.
- Changed configuration‑derived lookups to return owned values: `BString`, `PathBuf`, `OsString`, and `FullName`; simplified optional access from `Option<T>` to `Result<T, E>`; accepted common string inputs via `AsBStr`; removed widespread `Cow` construction, `into_owned()`, and redundant cloning.
Full changelog
Changed (BREAKING)
-
replace
maybe-asyncwithbisync.
Replace the globally feature-selected maybe-async dependency with bisync 0.3 and
re-export the locally selected macro mode from gix-protocol.Also use it to deduplicate portions which previously couldn't be handled.
-
adapt to lifetime-free configuration files in
gix-config
Update repository configuration storage, snapshots, overrides, and caches
to use the self-containedgix_config::Filerepresentation. Configuration
can now move through repository initialization, cloning, and remote setup
without artificial input lifetimes or conversions to'static.- Return owned
BString,PathBuf,OsString, andFullNamevalues
from configuration-derived lookups. - Simplify fallible optional access from
Option<Result<T, E>>to
Result<Option<T>, E>, allowing errors to propagate naturally with
?. - Accept common string and byte-string inputs through
AsBStrin
configuration setters, converters, remote lookup, and remote saving. - Remove widespread
Cowconstruction,into_owned(), and redundant
cloning from configuration consumers. - Preserve configuration-key context when converting owned values and
enriching validation errors.
Adapt config-tree conversions for the new owned values and optional-result
shape, including booleans, integers, paths, URLs, refspecs, timeouts,
compression levels, and reference names.Return owned remote names, default remote names, branch tracking
references, and submodule paths so these results are independent of the
repository configuration borrow. Protocol feature values likewise use
owned strings.Update repository opening, initialization, cloning, remotes, filters,
status, submodules, and related tests to use the lifetime-free APIs. - Return owned
Commit Statistics
- 15 commits contributed to the release.
- 31 days passed between releases.
- 2 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Thanks Clippy
Clippy helped 1 time to make code idiomatic.
Commit Details
view details- Uncategorized
- Update changelogs prior to release (cb6ec7d)
- Release gix-trace v0.1.21, gix-validate v0.11.3, gix-path v0.12.3, gix-utils v0.3.5, gix-config-value v0.19.0, gix-prompt v0.16.0, gix-sec v0.14.2, gix-url v0.37.0, gix-credentials v0.39.0, safety bump 18 crates (f0ec710)
- Merge pull request #2728 from GitoxideLabs/try-bisync (adf4b7a)
- Deduplicate fetch I/O across async and blocking modes (2619919)
- Replace
maybe-asyncwithbisync. (c3f2244) - Merge pull request #2722 from GitoxideLabs/reasons (c16b5a1)
- Replace lint allowances with expectations (43ff87a)
- Merge pull request #2667 from GitoxideLabs/lifetime-free-config-parser (55b5158)
- Adapt to changes in
gix-config(376e946) - Adapt to lifetime-free configuration files in
gix-config(582d7b5) - Merge pull request #2714 from GitoxideLabs/fix-credentials-parsing (cf3053a)
- Release gix-path v0.12.2, gix-error v0.2.5, gix-utils v0.3.4, gix-date v0.15.6, gix-url v0.36.2, gix-credentials v0.38.2 (27aec47)
- Merge pull request #2702 from ameyypawar/fix/2694-exn-source-chain (e9c973d)
- Thanks clippy (d533f0c)
- Merge pull request #2646 from GitoxideLabs/report (1b1541e)
git-upload-pack path, reqwest error preservation, maybe‑async → bisync
Routine maintenance and dependency updates.
Compression config + header safety
Fixtures bypass Git gates; stats & crate releases
Config parsing overhaul + BREAKING
Routine maintenance and dependency updates.
Dependency removal + symlink validation + crate updates
- Removed `maybe-async` dependency and replaced it with `bisync` 0.3; re-exported locally selected macro mode from gix-protocol.
Full changelog
Changed (BREAKING)
-
replace
maybe-asyncwithbisync.
Replace the globally feature-selected maybe-async dependency with bisync 0.3 and
re-export the locally selected macro mode from gix-protocol.Also use it to deduplicate portions which previously couldn't be handled.
Commit Statistics
- 7 commits contributed to the release.
- 37 days passed between releases.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details- Uncategorized
- Update changelogs prior to release (cb6ec7d)
- Release gix-trace v0.1.21, gix-validate v0.11.3, gix-path v0.12.3, gix-utils v0.3.5, gix-config-value v0.19.0, gix-prompt v0.16.0, gix-sec v0.14.2, gix-url v0.37.0, gix-credentials v0.39.0, safety bump 18 crates (f0ec710)
- Merge pull request #2728 from GitoxideLabs/try-bisync (adf4b7a)
- Replace
maybe-asyncwithbisync. (c3f2244) - Merge pull request #2722 from GitoxideLabs/reasons (c16b5a1)
- Replace lint allowances with expectations (43ff87a)
- Merge pull request #2638 from GitoxideLabs/fix-packetline-panic (9edeec9)
- Enable the `parallel` feature if using `Arc` for `gix-attributes` to maintain performance.
- Migrate code that relied on borrowed configuration values (`&str`, `&Path`) to handle owned types (`BString`, `PathBuf`) returned by new APIs.
- Adapted to lifetime‑free `gix-config` file representation, moving storage, snapshots, overrides, and caches to use owned `File` values without artificial input lifetimes.
- Return owned types (`BString`, `PathBuf`, `OsString`, `FullName`) from configuration lookups instead of borrowed references.
- Simplify fallible optional access from `Option<T>` to `Result<T, E>`, allowing errors to propagate with `?`.
Full changelog
Changed (BREAKING)
-
adapt to lifetime-free configuration files in
gix-config
Update repository configuration storage, snapshots, overrides, and caches
to use the self-containedgix_config::Filerepresentation. Configuration
can now move through repository initialization, cloning, and remote setup
without artificial input lifetimes or conversions to'static.- Return owned
BString,PathBuf,OsString, andFullNamevalues
from configuration-derived lookups. - Simplify fallible optional access from
Option<Result<T, E>>to
Result<Option<T>, E>, allowing errors to propagate naturally with
?. - Accept common string and byte-string inputs through
AsBStrin
configuration setters, converters, remote lookup, and remote saving. - Remove widespread
Cowconstruction,into_owned(), and redundant
cloning from configuration consumers. - Preserve configuration-key context when converting owned values and
enriching validation errors.
Adapt config-tree conversions for the new owned values and optional-result
shape, including booleans, integers, paths, URLs, refspecs, timeouts,
compression levels, and reference names.Return owned remote names, default remote names, branch tracking
references, and submodule paths so these results are independent of the
repository configuration borrow. Protocol feature values likewise use
owned strings.Update repository opening, initialization, cloning, remotes, filters,
status, submodules, and related tests to use the lifetime-free APIs. - Return owned
Chore (BREAKING)
- Remove
kstringfrom gix-attributes in favor of Rc/Arc
As RC is about 4% faster, Arc must be turned on with theparallelfeature.
Commit Statistics
- 13 commits contributed to the release.
- 31 days passed between releases.
- 2 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details- Uncategorized
- Update changelogs prior to release (cb6ec7d)
- Release gix-trace v0.1.21, gix-validate v0.11.3, gix-path v0.12.3, gix-utils v0.3.5, gix-config-value v0.19.0, gix-prompt v0.16.0, gix-sec v0.14.2, gix-url v0.37.0, gix-credentials v0.39.0, safety bump 18 crates (f0ec710)
- Merge pull request #2721 from GitoxideLabs/remove-kstring (e70732a)
- Remove
kstringfrom gix-attributes in favor of Rc/Arc (de1eae5) - Add gix-attributes lookup benchmark. (5d497a0)
- Merge pull request #2722 from GitoxideLabs/reasons (c16b5a1)
- Replace lint allowances with expectations (43ff87a)
- Merge pull request #2667 from GitoxideLabs/lifetime-free-config-parser (55b5158)
- Adapt to changes in
gix-config(376e946) - Adapt to lifetime-free configuration files in
gix-config(582d7b5) - Merge pull request #2714 from GitoxideLabs/fix-credentials-parsing (cf3053a)
- Release gix-path v0.12.2, gix-error v0.2.5, gix-utils v0.3.4, gix-date v0.15.6, gix-url v0.36.2, gix-credentials v0.38.2 (27aec47)
- Merge pull request #2646 from GitoxideLabs/report (1b1541e)
Routine maintenance and dependency updates.
Bug fixes, zlib removal, stats, commits
- Configuration storage, snapshots, overrides, and caches now use self‑contained `gix_config::File` representation without artificial input lifetimes or `'static` conversions.
- Return owned values (`BString`, `PathBuf`, `OsString`, `FullName`) from configuration lookups instead of borrowed types.
- Simplify optional access: change `Option<Result<_, _>>` to `Result<Option<_>, _>` for natural error propagation with `?`.
- Configuration paths can be stored and parsed from strings without lifetimes.
- Protocol protection can now be configured via new API.
Full changelog
Changed (BREAKING)
-
adapt to lifetime-free configuration files in
gix-config
Update repository configuration storage, snapshots, overrides, and caches
to use the self-containedgix_config::Filerepresentation. Configuration
can now move through repository initialization, cloning, and remote setup
without artificial input lifetimes or conversions to'static.- Return owned
BString,PathBuf,OsString, andFullNamevalues
from configuration-derived lookups. - Simplify fallible optional access from
Option<Result<T, E>>to
Result<Option<T>, E>, allowing errors to propagate naturally with
?. - Accept common string and byte-string inputs through
AsBStrin
configuration setters, converters, remote lookup, and remote saving. - Remove widespread
Cowconstruction,into_owned(), and redundant
cloning from configuration consumers. - Preserve configuration-key context when converting owned values and
enriching validation errors.
Adapt config-tree conversions for the new owned values and optional-result
shape, including booleans, integers, paths, URLs, refspecs, timeouts,
compression levels, and reference names.Return owned remote names, default remote names, branch tracking
references, and submodule paths so these results are independent of the
repository configuration borrow. Protocol feature values likewise use
owned strings.Update repository opening, initialization, cloning, remotes, filters,
status, submodules, and related tests to use the lifetime-free APIs. - Return owned
New Features (BREAKING)
-
store configuration paths and parse values from strings
Remove the lifetime from gix_config_value::Path and store its bytes in a
BString. Path interpolation now returns an owned PathBuf, including for paths
that do not require expansion.Allow Boolean, Color, and Integer to parse UTF-8 string slices as well as
byte strings. Keep BStr as the canonical parser input and disambiguate BString
callers explicitly. -
allow protocol protection to be configured
Bug Fixes (BREAKING)
- make
protect_protocolpart ofContextso it's self-contained.
This returns many methods back to their original version, but it's still
a breaking change, but now once again less so.
Commit Statistics
- 11 commits contributed to the release over the course of 8 calendar days.
- 8 days passed between releases.
- 4 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details- Uncategorized
- Merge pull request #2734 from GitoxideLabs/url-parse-convenience (e7af50e)
- Adapt to changes in gix-url (271454b)
- Merge pull request #2722 from GitoxideLabs/reasons (c16b5a1)
- Replace lint allowances with expectations (43ff87a)
- Merge pull request #2667 from GitoxideLabs/lifetime-free-config-parser (55b5158)
- Adapt to lifetime-free configuration files in
gix-config(582d7b5) - Store configuration paths and parse values from strings (020bbb6)
- Merge pull request #2715 from GitoxideLabs/fixup-credentials (299d16b)
- Make
protect_protocolpart ofContextso it's self-contained. (7d66c9f) - Merge pull request #2714 from GitoxideLabs/fix-credentials-parsing (cf3053a)
- Allow protocol protection to be configured (ffa862d)
- Calling `parse()` may become ambiguous due to added convenience overloads
- More convenient calling of `parse()`
- Updated commit statistics reporting
Full changelog
New Features (BREAKING)
- more convenient calling of
parse().
Possibly breaking, as calling code might now be ambiguous until fixed.
Commit Statistics
- 5 commits contributed to the release over the course of 8 calendar days.
- 8 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 #2734 from GitoxideLabs/url-parse-convenience (e7af50e)
- More convenient calling of
parse(). (8bc7005) - Merge pull request #2722 from GitoxideLabs/reasons (c16b5a1)
- Replace lint allowances with expectations (43ff87a)
- Merge pull request #2714 from GitoxideLabs/fix-credentials-parsing (cf3053a)
- Update code that previously relied on borrowed configuration values (e.g., `&str`, `&Path`) to handle the new owned types (`BString`, `PathBuf`, etc.).
- Adjust error handling paths to work with `Result`‑based optional access introduced in the API changes.
- Replace any usage of `Cow<'_, BStr>` or explicit `.into_owned()` calls when interacting with configuration APIs.
- Configuration storage, snapshots, overrides, and caches now use self‑contained `gix_config::File` representation without artificial input lifetimes or conversions to `'static`.
- Return owned `BString`, `PathBuf`, `OsString`, and `FullName` values from configuration‑derived lookups instead of borrowed types.
- Simplify fallible optional access from `Option<Result<…, E>>` to `Result<Option<…>, E>` (or similar) allowing errors to propagate naturally with `?`.
Full changelog
Changed (BREAKING)
-
adapt to lifetime-free configuration files in
gix-config
Update repository configuration storage, snapshots, overrides, and caches
to use the self-containedgix_config::Filerepresentation. Configuration
can now move through repository initialization, cloning, and remote setup
without artificial input lifetimes or conversions to'static.- Return owned
BString,PathBuf,OsString, andFullNamevalues
from configuration-derived lookups. - Simplify fallible optional access from
Option<Result<T, E>>to
Result<Option<T>, E>, allowing errors to propagate naturally with
?. - Accept common string and byte-string inputs through
AsBStrin
configuration setters, converters, remote lookup, and remote saving. - Remove widespread
Cowconstruction,into_owned(), and redundant
cloning from configuration consumers. - Preserve configuration-key context when converting owned values and
enriching validation errors.
Adapt config-tree conversions for the new owned values and optional-result
shape, including booleans, integers, paths, URLs, refspecs, timeouts,
compression levels, and reference names.Return owned remote names, default remote names, branch tracking
references, and submodule paths so these results are independent of the
repository configuration borrow. Protocol feature values likewise use
owned strings.Update repository opening, initialization, cloning, remotes, filters,
status, submodules, and related tests to use the lifetime-free APIs. - Return owned
Commit Statistics
- 6 commits contributed to the release.
- 58 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 #2722 from GitoxideLabs/reasons (c16b5a1)
- Replace lint allowances with expectations (43ff87a)
- Merge pull request #2667 from GitoxideLabs/lifetime-free-config-parser (55b5158)
- Adapt to changes in
gix-config(376e946) - Adapt to lifetime-free configuration files in
gix-config(582d7b5) - Merge pull request #2618 from GitoxideLabs/report (f7d4f33)
- Removed lifetime parameter from `gix_config_value::Path`; now stores bytes in `BString`.
- Changed `Path` interpolation to return an owned `PathBuf` instead of a borrowed path.
- Added UTF-8 string slice parsing support for `Boolean`, `Color`, and `Integer` types alongside existing `BStr`/`BString` parsers.
Full changelog
New Features (BREAKING)
-
store configuration paths and parse values from strings
Remove the lifetime from gix_config_value::Path and store its bytes in a
BString. Path interpolation now returns an owned PathBuf, including for paths
that do not require expansion.Allow Boolean, Color, and Integer to parse UTF-8 string slices as well as
byte strings. Keep BStr as the canonical parser input and disambiguate BString
callers explicitly.
Commit Statistics
- 5 commits contributed to the release.
- 58 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 #2722 from GitoxideLabs/reasons (c16b5a1)
- Replace lint allowances with expectations (43ff87a)
- Merge pull request #2667 from GitoxideLabs/lifetime-free-config-parser (55b5158)
- Store configuration paths and parse values from strings (020bbb6)
- Merge pull request #2618 from GitoxideLabs/report (f7d4f33)
Connections, Clone Hash, Tree Editor, Ref Handling, Trust, Shallow Tags
Routine maintenance and dependency updates.
Routine maintenance and dependency updates.
- Added `Write::*_with_known_id()` methods, altering the existing Write API signature.
- Commit statistics reporting (11 commits over 27 days, conventional commit detection).
- SHA-256 store access concurrency improvements and hash-aware tests.
- Dependency updates via Cargo group bump (40 updates).
Full changelog
New Features (BREAKING)
- implement
Write::*_with_known_id()
Commit Statistics
- 11 commits contributed to the release over the course of 27 calendar days.
- 27 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 #2653 from 10ne1/dev/aratiu/sha256-odb (e68a251)
- Review (9bb9736)
- Cover concurrent store access under SHA-256 (c67345e)
- Inline format args in the threaded regression test (a868fcd)
- Make the memory-overlay and loose-store tests hash-aware (c0794db)
- Make the dynamic-store tests hash-aware for SHA-256 fixtures (d1a055c)
- Merge pull request #2635 from GitoxideLabs/dependabot/cargo/cargo-7b971a5e8c (155ff6d)
- Bump the cargo group with 40 updates (9402adc)
- Merge pull request #2549 from GitoxideLabs/no-dupl-compute (69caccd)
- Implement
Write::*_with_known_id()(a7f0645) - Merge pull request #2618 from GitoxideLabs/report (f7d4f33)
Routine maintenance and dependency updates.
Routine maintenance and dependency updates.
Worktree dirs, docs, trust assumption
Symbolic ref NUL, packed-refs perf, ref path collisions
Routine maintenance and dependency updates.
Routine maintenance and dependency updates.
Routine maintenance and dependency updates.
Routine maintenance and dependency updates.
Routine maintenance and dependency updates.
Routine maintenance and dependency updates.
- Code calling `Editor::remove()` on paths that may be trees should switch to `remove_leaf()` to avoid unexpected errors.
- When using the Write trait, prefer `_with_known_id()` methods if the object ID is already known to skip hash recomputation.
- Removal of generic `remove()` behavior on leaf-only paths via new `Editor::remove_leaf()`; existing `remove()` remains but returns error when target is a tree.
- New `Editor::remove_leaf()` method for leaf-only tree entry removal.
- `Write::*_with_known_id()` variants (`write_buf_with_known_id()`, `write_stream_with_known_id()`) allowing precomputed hash usage.
Full changelog
New Features (BREAKING)
-
add leaf-only tree-editor removal via
Editor::remove_leaf()
Motivation comes from https://github.com/gitbutlerapp/gitbutler/pull/14312,
where callers had to split tree-entry deletions from additions to avoid
accidentally deleting a newly-added subtree after adding A/one and then deleting
A.Add Editor::remove_leaf() to gix-object and expose it through gix object tree
editors and cursors. The new API keeps remove() behavior unchanged, remains
tolerant of absent paths, but returns an error when the target entry exists and
is a tree. -
Add
Write::*_with_known_id()variants.
Addwrite_buf_with_known_id()andwrite_stream_with_known_id()to the
Write trait without default bodies.
That way it's possible to precompute the hash and avoid recomputing it here.
Commit Statistics
- 5 commits contributed to the release over the course of 27 calendar days.
- 27 days passed between releases.
- 2 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details- Uncategorized
- Merge pull request #2654 from GitoxideLabs/tree-editor-improvement (f051396)
- Add leaf-only tree-editor removal via
Editor::remove_leaf()(cd610db) - Merge pull request #2549 from GitoxideLabs/no-dupl-compute (69caccd)
- Add
Write::*_with_known_id()variants. (879694a) - Merge pull request #2618 from GitoxideLabs/report (f7d4f33)
Routine maintenance and dependency updates.
Routine maintenance and dependency updates.
gix dirwalk + gix merge tree + Rust 2024 update
Empty checkout, SHA‑256 parsing, submodule fix, is_dirty change
Test tools, filter-driver, SHA‑256, sha1 cleanup, symlink fix
Testtools, Status fixtures, Rust 2024, MSRV, Security
Rust 2024 edition + MSRV raise + SHA forwardings
Test tools, SHA‑256, Rust 2024, MSRV, object_hash
SHA-256 + delta header fix + tool updates
Routine maintenance and dependency updates.
Routine maintenance and dependency updates.
gix-testtools, hash forwarding, Rust 2024, MSRV, symlink fix
Routine maintenance and dependency updates.
gix-testtools updates + SHA‑256 + Rust edition bump
Docs, Index Debug, Untracked Decoding, Stat Fix
sha1/sha256 forwarding, Rust 2024, MSRV raise, tooling updates
- `Stream::add_entry_from_path` now requires `hash_kind` argument; update call sites accordingly.
- Introduce `GIX_TEST_FIXTURE_HASH` for configuring hash kind in `gix-worktree-stream`
Full changelog
New Features (BREAKING)
- use
GIX_TEST_FIXTURE_HASHforgix-worktree-stream
This is breaking becauseStream::add_entry_from_path's API has
changed. It now takeshash_kindas an argument.
Commit Statistics
- 20 commits contributed to the release over the course of 28 calendar days.
- 28 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 #2589 from GitoxideLabs/fix-status-in-unborn-repo (ba7d9a4)
- Stabilize filter-driver example use in parallel tests to remove flake (db16a05)
- Merge pull request #2573 from cruessler/run-gix-traverse-tests-with-sha-256 (278d7ec)
- Address auto-review (0ec3bb7)
- Cleanup
sha1feature ingixto just set what's needed. (16a6fc4) - Merge pull request #2575 from SarthakB11/fix/issue-2316 (4743361)
- Review (1980190)
- Document why each fixture archive is .gitignored (e3d5a04)
- Merge pull request #2568 from GitoxideLabs/dependabot/cargo/cargo-56d6b174d8 (ab2fee1)
- Update crates to Rust 2024 edition (2cb17b2)
- Remove rust_2018_idioms lint declarations (e10d5f6)
- Raise MSRV for hash dependency updates (3675a8d)
- Merge pull request #2559 from GitoxideLabs/fix/symlink-prefix-reuse-worktree-escape-ghsa-f89h-2fjh-2r9q (3af9b4a)
- Release gix-fs v0.21.1 (d3e4c17)
- Merge pull request #2543 from cruessler/run-gix-worktree-stream-tests-with-sha-256 (23af41a)
- Adapt to changes in
gix-testtoolsand renamehash_kind->object_hash(d9648e8) - Review (71e1de9)
- Add unwrap_or_default (183823e)
- Use
GIX_TEST_FIXTURE_HASHforgix-worktree-stream(f223e63) - Merge pull request #2546 from GitoxideLabs/fix-2545 (adb8328)
Rust 2024 edition update + MSRV raise
gix-traverse, SHA forwardings, Rust 2024, hash-kind rename
MSRV raise + Rust 2024 + fuzz resilience
- MSRV raised for hash dependency updates; ensure runtime meets new minimum version.
- Remove `rust_2018_idioms` lint declarations in dependent code.
- Rename `Data::hash_kind` to `Data::object_hash`
- `sha1` and `sha256` forwardings added for all crates
- Update crates to Rust 2024 edition
Full changelog
Bug Fixes (BREAKING)
- rename
Data::hash_kindtoData::object_hashfor consistency
The new name is now used everywhere and more descriptive and clear.
Commit Statistics
- 12 commits contributed to the release over the course of 28 calendar days.
- 28 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 #2573 from cruessler/run-gix-traverse-tests-with-sha-256 (278d7ec)
sha1andsha256forwardings for all crates (09b982c)- Review (1cd36be)
- Merge pull request #2568 from GitoxideLabs/dependabot/cargo/cargo-56d6b174d8 (ab2fee1)
- Update crates to Rust 2024 edition (2cb17b2)
- Remove rust_2018_idioms lint declarations (e10d5f6)
- Raise MSRV for hash dependency updates (3675a8d)
- Merge pull request #2543 from cruessler/run-gix-worktree-stream-tests-with-sha-256 (23af41a)
- Address auto-review (b358d31)
- Rename
Data::hash_kindtoData::object_hashfor consistency (7aff98b) - Adapt to changes in
gix-testtoolsand renamehash_kind->object_hash(d9648e8) - Merge pull request #2546 from GitoxideLabs/fix-2545 (adb8328)
MSRV raise + Rust 2024 + SHA forwardings
- Removed `winnow` crate and all related parser combinators, replacing them with hand‑implemented parsers; detailed error messages from previous winnow parsers are also removed.
Full changelog
Bug Fixes
- Correctly use
$COMMON_DIR/info/excludeto make excludes work in worktrees.
It turns out there is no per-worktree excludes file either.
Chore (BREAKING)
- Upgrade
prodashandcrosstermionto the latest version.
This will fix thecargo denyissue as it brings in a newerlrucrate.
Bug Fixes (BREAKING)
-
remove
winnowand replace it with hand-implemented parsers everywhere.
This will allow for simplified maintenance and editing (both human and machine)
down the road, and enable additional performance optimisations.Parser compbinators to me ultimately were a failed experiment as I couldn't maintain
them anyway, with it being too difficult for me to grasp and express everything
in its very own kind of language, with a lot of different things to consider.Note that this also removes detailed errors from all parsers that previously
usedwinnow, with the option to re-add those if there is demand.
Commit Statistics
- 5 commits contributed to the release over the course of 2 calendar days.
- 3 days passed between releases.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details- Uncategorized
- Adapt to changes in
gix-object(91bfab0) - Remove
winnowand replace it with hand-implemented parsers everywhere. (91c854e) - Merge pull request #2540 from GitoxideLabs/reporting (4d5ba23)
- Merge pull request #2529 from GitoxideLabs/reflog-newline-handling (2c3a08e)
- Adapt to changes in
gix-error(2e2a126)
- Adapt to changes in
Routine maintenance and dependency updates.
- Removed `winnow` parser combinator library and all its usages, replaced with hand‑implemented parsers; detailed error reporting from those parsers is no longer provided.
Full changelog
Bug Fixes (BREAKING)
-
remove
winnowand replace it with hand-implemented parsers everywhere.
This will allow for simplified maintenance and editing (both human and machine)
down the road, and enable additional performance optimisations.Parser compbinators to me ultimately were a failed experiment as I couldn't maintain
them anyway, with it being too difficult for me to grasp and express everything
in its very own kind of language, with a lot of different things to consider.Note that this also removes detailed errors from all parsers that previously
usedwinnow, with the option to re-add those if there is demand.
Commit Statistics
- 2 commits contributed to the release over the course of 2 calendar days.
- 3 days passed between releases.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details- Uncategorized
- Remove
winnowand replace it with hand-implemented parsers everywhere. (91c854e) - Merge pull request #2540 from GitoxideLabs/reporting (4d5ba23)
- Remove
Routine maintenance and dependency updates.
Routine maintenance and dependency updates.
Routine maintenance and dependency updates.
- Detailed error messages previously provided by winnow parsers are no longer available; consider re‑adding them if needed.
- Update build configurations and codebases to replace any `winnow` imports with the new hand‑implemented parser equivalents.
- Removed `winnow` parser library; all parsers now use hand‑implemented implementations, eliminating detailed error reporting from previous winnow parsers.
Full changelog
Bug Fixes (BREAKING)
-
remove
winnowand replace it with hand-implemented parsers everywhere.
This will allow for simplified maintenance and editing (both human and machine)
down the road, and enable additional performance optimisations.Parser compbinators to me ultimately were a failed experiment as I couldn't maintain
them anyway, with it being too difficult for me to grasp and express everything
in its very own kind of language, with a lot of different things to consider.Note that this also removes detailed errors from all parsers that previously
usedwinnow, with the option to re-add those if there is demand.
Commit Statistics
- 2 commits contributed to the release over the course of 2 calendar days.
- 3 days passed between releases.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details- Uncategorized
- Remove
winnowand replace it with hand-implemented parsers everywhere. (91c854e) - Merge pull request #2540 from GitoxideLabs/reporting (4d5ba23)
- Remove
Remote tracking, SHA-256 refs, hash kind limit, parser removal
Routine maintenance and dependency updates.
Routine maintenance and dependency updates.
Routine maintenance and dependency updates.
Routine maintenance and dependency updates.
Routine maintenance and dependency updates.
Routine maintenance and dependency updates.
- If your code relied on detailed parsing errors from the former winnow-based parsers, you will need to implement alternative error handling or request re‑addition of those details.
- Ensure any usage of Commit/Tag parsing supplies a `gix_hash::Kind` matching the expected hash length; otherwise parsing may fail.
- Limit Commit and Tag parsing to a given `gix_hash::Kind`, simplifying the parser but altering behavior for unsupported hash kinds.
- Remove `winnow` crate entirely, replacing all parsers with hand-implemented versions; detailed error messages previously provided by winnow are no longer emitted.
Full changelog
Bug Fixes (BREAKING)
-
Limit Commit and Tag parsing to a given
gix_hash::Kind
Doing so adds conformity with Git, but also simplifies the parser
which now only parse hex-hashes of a single valid length. -
remove
winnowand replace it with hand-implemented parsers everywhere.
This will allow for simplified maintenance and editing (both human and machine)
down the road, and enable additional performance optimisations.Parser compbinators to me ultimately were a failed experiment as I couldn't maintain
them anyway, with it being too difficult for me to grasp and express everything
in its very own kind of language, with a lot of different things to consider.Note that this also removes detailed errors from all parsers that previously
usedwinnow, with the option to re-add those if there is demand.
Commit Statistics
- 4 commits contributed to the release over the course of 2 calendar days.
- 3 days passed between releases.
- 2 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details- Uncategorized
- Adapt to changes in
gix-object(91bfab0) - Limit Commit and Tag parsing to a given
gix_hash::Kind(d4439cd) - Remove
winnowand replace it with hand-implemented parsers everywhere. (91c854e) - Merge pull request #2540 from GitoxideLabs/reporting (4d5ba23)
- Adapt to changes in
Routine maintenance and dependency updates.
- Upgrade `prodash` and `crosstermion` to latest versions (breaks compatibility with previous crate versions).
Full changelog
Chore (BREAKING)
- Upgrade
prodashandcrosstermionto the latest version.
This will fix thecargo denyissue as it brings in a newerlrucrate.
Commit Statistics
- 1 commit contributed to the release over the course of 2 calendar days.
- 3 days passed between releases.
- 0 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details- Uncategorized
- Merge pull request #2540 from GitoxideLabs/reporting (4d5ba23)
- If detailed error messages from parsers are required, implement custom handling as the built‑in winnow errors were removed.
- Removed `winnow` parser combinator library and replaced all parsers with hand‑implemented equivalents; detailed error reporting from winnow parsers is no longer available.
Full changelog
Bug Fixes (BREAKING)
-
remove
winnowand replace it with hand-implemented parsers everywhere.
This will allow for simplified maintenance and editing (both human and machine)
down the road, and enable additional performance optimisations.Parser compbinators to me ultimately were a failed experiment as I couldn't maintain
them anyway, with it being too difficult for me to grasp and express everything
in its very own kind of language, with a lot of different things to consider.Note that this also removes detailed errors from all parsers that previously
usedwinnow, with the option to re-add those if there is demand.
Commit Statistics
- 2 commits contributed to the release over the course of 2 calendar days.
- 3 days passed between releases.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details- Uncategorized
- Remove
winnowand replace it with hand-implemented parsers everywhere. (91c854e) - Merge pull request #2540 from GitoxideLabs/reporting (4d5ba23)
- Remove