github Byron/gitoxide gix-protocol-v0.33.0
gix-protocol v0.33.0

15 months ago

New Features

  • Add fetch::Arguments::is_stateless() to aid proper use of arguments.
    When arguments are used, haves are reset every round in stateless protocols, while
    everything else is repeated. However, this also means that previously confirmed common
    commits aren't repeated unless this is specifically implemented by the user of Arguments.

    That caller can now easily determine if negotiations have to be compensated for.

    Please note that Arguments explicitly doesn't implement repeating of all prior arguments, which
    would also repeat a lot of in-vain haves.

Bug Fixes

  • include-tag is now properly handled in V1 fetch arguments
    Previously it would be added like it's V2 arguments, which makes using it
    in V1 impossible.

Bug Fixes (BREAKING)

  • make V1 stateless negotations work.
    This is done by working around another V1 negotiation oddity
    by exploiting client-side knowledge. For very old servers, we probably
    wouldn't be able to do multi-rounds without dead-locking, but with
    recent-enough (probably 10 years or so) old git servers all should
    work fine.

    All this to not actually have to implement the V1 strangeness, allowing
    our code to work smoothly with all permutations of stateless/stateful connections
    and V1/V2 interactions, with a single high-level implementation essentially.

Commit Statistics

  • 12 commits contributed to the release over the course of 12 calendar days.
  • 40 days passed between releases.
  • 3 commits were understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Prepare changelogs prior to release (8f15cec)
    • Merge branch 'integrate-gix-negotiate' (ae845de)
    • Make V1 stateless negotations work. (6a3c021)
    • include-tag is now properly handled in V1 fetch arguments (c5dc7b4)
    • Add fetch::Arguments::is_stateless() to aid proper use of arguments. (877aa29)
    • Adapt to changes in gix-transport (60eaceb)
    • Merge branch 'fix-docs' (420553a)
    • Cleaning up documentation (2578e57)
    • Apply -W clippy::cloned-instead-of-copied (150463c)
    • Merge branch 'main' into auto-clippy (3ef5c90)
    • Merge branch 'blinxen/main' (9375cd7)
    • Include license files in all crates (facaaf6)

Don't miss a new gitoxide release

NewReleases is sending notifications on new releases.