github GitoxideLabs/gitoxide git-protocol-v0.23.0
git-protocol v0.23.0

23 months ago

New Features

  • expose futures_lite for convenience in downstream crates.

Changed (BREAKING)

  • move fetch::refs(…, protocol, …) to the crate root as ls_refs(…).
    This move also removes the protocol parameter as ls-refs is only available
    in V2 and the caller is forced to know that after running a
    handshake(…) anyway which yields the actual protocol used by the
    server.

    Note that the client can suggest the version to use when connecting,
    which is specific to the transport at hand.

  • move fetch::Command into the crate root.
    This represents much better on how it is actually used, which is for
    validation of any Command invoked through the protocol independenty.

  • move fetch::agent|indicate_end_of_interaction to crate root
    These are generally useful in all interactions, including push.

  • handshake(…) is now generalized to support git-receive-pack as well.
    Note that fetch::handshake() is still present, selecting the correct
    service like before, but most of the fetch::Ref parsing is now handled
    by handshake::Ref in it's more general location.

    There is still fetch::refs(…) which just invokes a V2 ls-refs command
    (without that being generalized) as git-receive-pack just supports
    V1 at the moment, and making the fetch::LsRefs Command more general
    would mean that every command has to be general, at is doesn't matter
    anymore if it's used for Fetch or Push.

    As long as git won't support V2 for pushes, which it never might,
    there is no need to introduce this breakage even though it
    should probably be done before going 1.0.

  • fetch::agent() returns agent string only; fetch() takes agent name as parameter.

  • don't auto-insert user agent, instead prepare to insert it later.

  • fetch::agent() now returns the agent name, fetch::agent_tuple() returns specific key-value pair.
    This is in preparation for allowing user-defined agent strings.

Commit Statistics

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

Commit Details

view details
  • Uncategorized
    • prepare changelogs prior to release (fe5721f)
    • Merge branch 'http-config' (665b53e)
    • fix docs (b5c316e)
    • move fetch::refs(…, protocol, …) to the crate root as ls_refs(…). (09070a7)
    • move fetch::Command into the crate root. (35f7b4d)
    • move fetch::agent|indicate_end_of_interaction to crate root (a03f8f6)
    • handshake(…) is now generalized to support git-receive-pack as well. (a3bcf82)
    • migrate independent parts of ref parsing to generalized handshake. (611a139)
    • prepare for handshake generalization by copying it into position; parameterize service (7691353)
    • Merge branch 'main' into http-config (f4ff821)
    • Merge branch 'async-fetch' (0c9c48b)
    • expose futures_lite for convenience in downstream crates. (68c65a9)
    • Set exact patch level for git-transport (b46e3bb)
    • adjust for changes in git-transport (f88569b)
    • adapt to changes in git-transport (226f33a)
    • make trait parameter more open, no need for 'static (68dc86f)
    • fetch::agent() returns agent string only; fetch() takes agent name as parameter. (d05b0b8)
    • don't auto-insert user agent, instead prepare to insert it later. (aab278f)
    • fetch::agent() now returns the agent name, fetch::agent_tuple() returns specific key-value pair. (f957d9a)

Don't miss a new gitoxide release

NewReleases is sending notifications on new releases.