github GitoxideLabs/gitoxide gix-v0.75.0
gix v0.75.0

9 hours ago

New Features

  • add Repository::worktree_proxy_by_id(id).
    That way it's more straightforward to obtain information about worktrees
    which are known by ID.
  • add Handshake::ref_map() to produce a ref-map from a V1 or V2 handshake.
  • add Repository::set_workdir().
    Force this repository instance to use the given worktree directory.

Bug Fixes

  • refspec for shallow clones uses a single-branch
    When doing shallow clones (depth != NoChange), it now uses a single-branch
    refspec instead of fetching all branches. This matches Git's behavior
    and significantly reduces the repository size for shallow clones.

    For shallow clones:

    • If ref_name is specified: uses that branch
    • Otherwise: attempts to detect from Protocol V1 handshake or falls
      back to init.defaultBranch config or "main"

    This addresses issue #2227 where gix clone --depth 1 was creating
    repositories ~130MB vs Git's ~70MB due to fetching all branches.

Bug Fixes (BREAKING)

  • respect diff.algorithm in Repository::blame_file
  • make gix-transport I/O mode features additive

Refactor (BREAKING)

  • simplify gix-protocol handshake API by avoiding duplicates that remove the server parameter.
  • hoist handshake ref handling out of transport code
  • store all_refspecs in Options
  • store fetch refspecs in Options
  • flatten RefMap::new() arguments

Commit Statistics

  • 35 commits contributed to the release.
  • 11 commits were understood as conventional.
  • 1 unique issue was worked on: #2227

Commit Details

view details
  • #2227
    • Refspec for shallow clones uses a single-branch (f7700e4)
  • Uncategorized
    • Merge branch 'copilot/fix-issue-2258' (b20d9e9)
    • Fix dead code warnings in gix and gitoxide-core (b170451)
    • Merge pull request #2250 from djc/rm-handshake-layers (3c2b422)
    • Bring the service parameter back to not hardcode the handshake for fetches. (c9a97db)
    • Simplify gix-protocol handshake API by avoiding duplicates that remove the server parameter. (36c2be8)
    • Merge pull request #2252 from GitoxideLabs/improvements (2f14246)
    • Add Repository::worktree_proxy_by_id(id). (a004329)
    • Merge pull request #2249 from iczero/fetch-performance-fix (c3beb20)
    • Move worktree_branches call out of loop (37e7e02)
    • Merge pull request #2242 from djc/ls-refs (0ac3080)
    • Add Handshake::ref_map() to produce a ref-map from a V1 or V2 handshake. (aeee982)
    • Adapt to changes in gix-protocol: Outcome -> Handshake (a61b2ab)
    • Refactor (48fdf5d)
    • Hoist handshake ref handling out of transport code (19a0051)
    • Store all_refspecs in Options (50120de)
    • Store fetch refspecs in Options (37ab036)
    • Flatten RefMap::new() arguments (f05dfab)
    • Merge pull request #2238 from GitoxideLabs/copilot/update-refspec-parsing-logic (c2c1a61)
    • Refactor (ba2301f)
    • Merge pull request #2248 from GitoxideLabs/improvements (c400dd3)
    • Adapt to changes in gix-date (2bcac0c)
    • Merge pull request #2247 from GitoxideLabs/improvements (3087b76)
    • Adapt to changes in gix-date (d5e194d)
    • Merge pull request #2229 from GitoxideLabs/copilot/fix-refspec-for-shallow-clone (bc62b1e)
    • Refactor (c331afc)
    • Merge pull request #2197 from cruessler/add-tests-for-slider-problem (ab44f45)
    • Merge pull request #2240 from cruessler/add-gix-repository-blame-options (385ab16)
    • Refactor (2a187ca)
    • Respect diff.algorithm in Repository::blame_file (bb2cec0)
    • Merge pull request #2204 from cruessler/improve-blame-ranges (663b41e)
    • Add Repository::set_workdir(). (0ed0164)
    • Merge pull request #2236 from djc/additive-transport (6e89afa)
    • Make gix-transport I/O mode features additive (c2050d0)
    • Merge pull request #2230 from yuki0iq/doc_auto_cfg (fbf9c39)

Don't miss a new gitoxide release

NewReleases is sending notifications on new releases.