Skip to content

gitoxide

vgix-ref-v0.63.0 scope: gix-ref Breaking

This release includes 3 breaking changes for platform teams planning a safe upgrade.

Published 1mo Version Control
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

blazingly-fast built-with-rust cli git version-control

Affected surfaces

breaking_upgrade deps

Summary

AI summary

Broad release touches Commit Details, Bug Fixes, Commit Statistics, and New Features.

Full changelog

New Features

  • add Category::is_remote_tracking_branch().
    Mere convenience.

Bug Fixes

  • don't fail reflog creation if newlines are used in the configured user name

    Look at https://github.com/GitoxideLabs/gitoxide/issues/2491 and compare this with what Git at /Users/b
    yron/dev/github.com/git/git does. I think it will allow newlines and just trim whitespace. Once validat
    ed, create a test in gix-ref to reproduce the issue, then fix it.

New Features (BREAKING)

  • add sha-256 support to gix-ref.
    This predominantly restricts parsing so it won't allow any hash
    but the one that was passed.

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 winnow and 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
    used winnow, with the option to re-add those if there is demand.

Commit Statistics

  • 8 commits contributed to the release over the course of 2 calendar days.
  • 3 days passed between releases.
  • 5 commits were understood as conventional.
  • 1 unique issue was worked on: #2491

Commit Details

view details
  • #2491
    • Don't fail reflog creation if newlines are used in the configured user name (1bf4099)
  • Uncategorized
    • Add Category::is_remote_tracking_branch(). (d5f9bf5)
    • Address auto-review (87b2da8)
    • Add sha-256 support to gix-ref. (731248f)
    • Limit Commit and Tag parsing to a given gix_hash::Kind (d4439cd)
    • Remove winnow and 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)

Breaking Changes

  • Removes the `winnow` parser library and replaces all parsers with hand‑implemented equivalents, eliminating detailed error messages from those parsers.
  • Restricts Commit and Tag parsing to a single `gix_hash::Kind`, disallowing mixed hash lengths.
  • Adds SHA‑256 support to `gix-ref` which now only parses the exact passed hash, rejecting any other hashes.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track gitoxide

Get notified when new releases ship.

Sign up free

About gitoxide

An idiomatic, lean, fast & safe pure Rust implementation of Git

All releases →

Related context

Earlier breaking changes

  • vgix-v0.84.0 Allow checkouts of empty repositories; `destination_must_be_empty` becomes `Option<bool>`
  • vgix-worktree-stream-v0.33.0 Changes API of `Stream::add_entry_from_path` to require `hash_kind` argument.
  • vgix-object-v0.61.0 Renames `Data::hash_kind` to `Data::object_hash` for consistency.

Beta — feedback welcome: [email protected]