Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

0.41.1 (2023-10-13)

Bug Fixes

  • bump gix-transport version to prevent it from being picked up. gix-transport v0.37.1 could accidentally be picked up by older, incompatible, gix versions which now fail to build.

    Thus v0.37.1 is now yanked and replaced with v0.38.0 along with a new release of gix to go with it.

Commit Statistics

  • 2 commits contributed to the release.
  • 1 commit was understood as conventional.
  • 0 issues like ‘(#ID)’ were seen in commit messages

Commit Details

  • Uncategorized
    • Prepare changelogs prior to release (12b5caf)
    • Bump gix-transport version to prevent it from being picked up. (8011c73)

0.41.0 (2023-10-12)

A maintenance release without user-facing changes.

Commit Statistics

  • 3 commits contributed to the release.
  • 17 days passed between releases.
  • 0 commits were understood as conventional.
  • 0 issues like ‘(#ID)’ were seen in commit messages

Commit Details

  • Uncategorized
    • Release gix-transport v0.37.1, gix-protocol v0.41.0, gix-revision v0.23.0, gix-refspec v0.19.0, gix-worktree v0.27.0, gix-status v0.2.0, gix-submodule v0.5.0, gix-worktree-state v0.4.0, gix v0.55.0 (14ddbd4)
    • Release gix-hash v0.13.1, gix-features v0.36.0, gix-actor v0.28.0, gix-object v0.38.0, gix-glob v0.14.0, gix-attributes v0.20.0, gix-command v0.2.10, gix-filter v0.6.0, gix-fs v0.8.0, gix-commitgraph v0.22.0, gix-revwalk v0.9.0, gix-traverse v0.34.0, gix-worktree-stream v0.6.0, gix-archive v0.6.0, gix-tempfile v11.0.0, gix-lock v11.0.0, gix-ref v0.38.0, gix-config v0.31.0, gix-url v0.25.0, gix-credentials v0.21.0, gix-diff v0.37.0, gix-discover v0.26.0, gix-ignore v0.9.0, gix-index v0.26.0, gix-mailmap v0.20.0, gix-negotiate v0.9.0, gix-pack v0.44.0, gix-odb v0.54.0, gix-pathspec v0.4.0, gix-packetline v0.16.7, gix-transport v0.37.0, gix-protocol v0.41.0, gix-revision v0.23.0, gix-refspec v0.19.0, gix-worktree v0.27.0, gix-status v0.2.0, gix-submodule v0.5.0, gix-worktree-state v0.4.0, gix v0.55.0, safety bump 37 crates (68e5432)
    • Prepare changelogs prior to release (1347a54)

0.40.0 (2023-09-24)

A maintenance release without user-facing changes.

Commit Statistics

  • 2 commits contributed to the release.
  • 15 days passed between releases.
  • 0 commits were understood as conventional.
  • 0 issues like ‘(#ID)’ were seen in commit messages

Commit Details

  • Uncategorized
    • Release gix-features v0.35.0, gix-actor v0.27.0, gix-object v0.37.0, gix-glob v0.13.0, gix-attributes v0.19.0, gix-filter v0.5.0, gix-fs v0.7.0, gix-commitgraph v0.21.0, gix-revwalk v0.8.0, gix-traverse v0.33.0, gix-worktree-stream v0.5.0, gix-archive v0.5.0, gix-tempfile v10.0.0, gix-lock v10.0.0, gix-ref v0.37.0, gix-config v0.30.0, gix-url v0.24.0, gix-credentials v0.20.0, gix-diff v0.36.0, gix-discover v0.25.0, gix-ignore v0.8.0, gix-index v0.25.0, gix-mailmap v0.19.0, gix-negotiate v0.8.0, gix-pack v0.43.0, gix-odb v0.53.0, gix-pathspec v0.3.0, gix-transport v0.37.0, gix-protocol v0.40.0, gix-revision v0.22.0, gix-refspec v0.18.0, gix-status v0.1.0, gix-submodule v0.4.0, gix-worktree v0.26.0, gix-worktree-state v0.3.0, gix v0.54.0, gitoxide-core v0.32.0, gitoxide v0.30.0, safety bump 37 crates (7891fb1)
    • Prepare changelogs prior to release (8a60d5b)

0.39.0 (2023-09-08)

Chore (BREAKING)

  • update to the latest prodash It makes proper usage of Progress types easier and allows them to be used as dyn traits as well.

New Features (BREAKING)

  • use prodash::Count to indicate that nothing more than counting is performed, in place of prodash::Progress

Bug Fixes (BREAKING)

  • use dyn trait where possible. This reduces compile time due to avoiding duplication.

Commit Statistics

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

Commit Details

  • Uncategorized
    • Release gix-transport v0.36.0, gix-protocol v0.39.0, gix-revision v0.21.0, gix-refspec v0.17.0, gix-submodule v0.3.0, gix-worktree v0.25.0, gix-worktree-state v0.2.0, gix v0.53.0 (1ff3064)
    • Release gix-date v0.8.0, gix-hash v0.13.0, gix-features v0.34.0, gix-actor v0.26.0, gix-object v0.36.0, gix-path v0.10.0, gix-glob v0.12.0, gix-attributes v0.18.0, gix-packetline-blocking v0.16.6, gix-filter v0.4.0, gix-fs v0.6.0, gix-commitgraph v0.20.0, gix-hashtable v0.4.0, gix-revwalk v0.7.0, gix-traverse v0.32.0, gix-worktree-stream v0.4.0, gix-archive v0.4.0, gix-config-value v0.14.0, gix-tempfile v9.0.0, gix-lock v9.0.0, gix-ref v0.36.0, gix-sec v0.10.0, gix-config v0.29.0, gix-prompt v0.7.0, gix-url v0.23.0, gix-credentials v0.19.0, gix-diff v0.35.0, gix-discover v0.24.0, gix-ignore v0.7.0, gix-index v0.24.0, gix-macros v0.1.0, gix-mailmap v0.18.0, gix-negotiate v0.7.0, gix-pack v0.42.0, gix-odb v0.52.0, gix-pathspec v0.2.0, gix-packetline v0.16.6, gix-transport v0.36.0, gix-protocol v0.39.0, gix-revision v0.21.0, gix-refspec v0.17.0, gix-submodule v0.3.0, gix-worktree v0.25.0, gix-worktree-state v0.2.0, gix v0.53.0, safety bump 39 crates (8bd0456)
    • Prepare changelogs for release (375db06)
    • Merge branch dynification (f658fcc)
    • Use dyn trait where possible. (072ee32)
    • Use prodash::Count to indicate that nothing more than counting is performed, in place of prodash::Progress (24dd870)
    • Merge pull request #1009 from epage/proto (16cac47)
    • Don't bother with error tracking that is ignored (444f970)
    • Upgrade gix-protocol to winnow 0.5 (237657e)
    • Prep for winnow 0.5 upgrade for gix-protocol (8c80dba)
    • Resolve winnow deprecations in gix-protocol (b213889)
    • Upgrade gix-protocol to winnow 0.4 (659ebe9)
    • Prep for winnow 0.4 upgrade for gix-protocol (8609aec)
    • Resolve winnow deprecations in gix-protocol (b46fe9c)
    • Migrate gix-protocol to winnow (0e8edef)
    • Update to the latest prodash (ed327f6)
    • Merge branch ‘adjustments-for-cargo’ (b7560a2)
    • Release gix-date v0.7.4, gix-index v0.23.0, safety bump 5 crates (3be2b1c)
    • Merge branch ‘gix-submodule’ (363ee77)

0.38.0 (2023-08-22)

Chore

  • don't call crate ‘WIP’ in manifest anymore.

Commit Statistics

  • 5 commits contributed to the release over the course of 15 calendar days.
  • 19 days passed between releases.
  • 1 commit was understood as conventional.
  • 0 issues like ‘(#ID)’ were seen in commit messages

Commit Details

  • Uncategorized
    • Release gix-url v0.22.0, gix-credentials v0.18.0, gix-diff v0.34.0, gix-discover v0.23.0, gix-ignore v0.6.0, gix-bitmap v0.2.7, gix-index v0.22.0, gix-mailmap v0.17.0, gix-negotiate v0.6.0, gix-pack v0.41.0, gix-odb v0.51.0, gix-pathspec v0.1.0, gix-packetline v0.16.5, gix-transport v0.35.0, gix-protocol v0.38.0, gix-revision v0.20.0, gix-refspec v0.16.0, gix-submodule v0.2.0, gix-worktree v0.24.0, gix-worktree-state v0.1.0, gix v0.52.0, gitoxide-core v0.31.0, gitoxide v0.29.0 (6c62e74)
    • Release gix-date v0.7.3, gix-hash v0.12.0, gix-features v0.33.0, gix-actor v0.25.0, gix-object v0.35.0, gix-path v0.9.0, gix-glob v0.11.0, gix-quote v0.4.7, gix-attributes v0.17.0, gix-command v0.2.9, gix-packetline-blocking v0.16.5, gix-filter v0.3.0, gix-fs v0.5.0, gix-commitgraph v0.19.0, gix-hashtable v0.3.0, gix-revwalk v0.6.0, gix-traverse v0.31.0, gix-worktree-stream v0.3.0, gix-archive v0.3.0, gix-config-value v0.13.0, gix-tempfile v8.0.0, gix-lock v8.0.0, gix-ref v0.35.0, gix-sec v0.9.0, gix-config v0.28.0, gix-prompt v0.6.0, gix-url v0.22.0, gix-credentials v0.18.0, gix-diff v0.34.0, gix-discover v0.23.0, gix-ignore v0.6.0, gix-bitmap v0.2.7, gix-index v0.22.0, gix-mailmap v0.17.0, gix-negotiate v0.6.0, gix-pack v0.41.0, gix-odb v0.51.0, gix-pathspec v0.1.0, gix-packetline v0.16.5, gix-transport v0.35.0, gix-protocol v0.38.0, gix-revision v0.20.0, gix-refspec v0.16.0, gix-submodule v0.2.0, gix-worktree v0.24.0, gix-worktree-state v0.1.0, gix v0.52.0, gitoxide-core v0.31.0, gitoxide v0.29.0, safety bump 41 crates (30b2761)
    • Update changelogs prior to release (f23ea88)
    • Don't call crate ‘WIP’ in manifest anymore. (229bd48)
    • Release gix-glob v0.10.2, gix-date v0.7.2, gix-validate v0.8.0, gix-object v0.34.0, gix-ref v0.34.0, gix-config v0.27.0, gix-commitgraph v0.18.2, gix-revwalk v0.5.0, gix-revision v0.19.0, gix-refspec v0.15.0, gix-submodule v0.1.0, safety bump 18 crates (4604f83)

0.37.0 (2023-08-02)

New Features

  • add fetch::Arguments::add_feature() for unconditional additions of arguments that are supposed to be features. This differentiation is important to support V1 and V2 correctly, which have a different notion of features with V1 special-casing them, and V2 just sees everything as arguments.

Bug Fixes (BREAKING)

  • handshake::Ref::Symbolic now has a tag field. This allows symbolic refs to be parsed which are in fact pointing to an annotated tag as in-between object.

Commit Statistics

  • 6 commits contributed to the release over the course of 1 calendar day.
  • 10 days passed between releases.
  • 2 commits were understood as conventional.
  • 0 issues like ‘(#ID)’ were seen in commit messages

Commit Details

  • Uncategorized
    • Release gix-actor v0.24.2, gix-object v0.33.2, gix-ref v0.33.3, gix-config v0.26.2, gix-prompt v0.5.5, gix-odb v0.50.2, gix-transport v0.34.2, gix-protocol v0.37.0, gix-worktree v0.23.1, gix v0.51.0, safety bump 3 crates (231ac1c)
    • Prepare additional changelogs (db63815)
    • Prepare changelogs (e4d2890)
    • Merge branch ‘fixes-and-improvements’ (f8b1f55)
    • Add fetch::Arguments::add_feature() for unconditional additions of arguments that are supposed to be features. (d1f9c63)
    • handshake::Ref::Symbolic now has a tag field. (0de7117)

0.36.1 (2023-07-22)

A maintenance release without user-facing changes.

Commit Statistics

  • 7 commits contributed to the release over the course of 1 calendar day.
  • 3 days passed between releases.
  • 0 commits were understood as conventional.
  • 0 issues like ‘(#ID)’ were seen in commit messages

Commit Details

  • Uncategorized
    • Release gix-diff v0.33.1, gix-discover v0.22.1, gix-ignore v0.5.1, gix-bitmap v0.2.6, gix-index v0.21.1, gix-mailmap v0.16.1, gix-negotiate v0.5.1, gix-pack v0.40.1, gix-odb v0.50.1, gix-packetline v0.16.4, gix-transport v0.34.1, gix-protocol v0.36.1, gix-revision v0.18.1, gix-refspec v0.14.1, gix-worktree v0.23.0, gix v0.50.0 (0062971)
    • Release gix-tempfile v7.0.2, gix-utils v0.1.5, gix-lock v7.0.2, gix-ref v0.33.1, gix-sec v0.8.4, gix-prompt v0.5.4, gix-url v0.21.1, gix-credentials v0.17.1, gix-diff v0.33.1, gix-discover v0.22.1, gix-ignore v0.5.1, gix-bitmap v0.2.6, gix-index v0.21.1, gix-mailmap v0.16.1, gix-negotiate v0.5.1, gix-pack v0.40.1, gix-odb v0.50.1, gix-packetline v0.16.4, gix-transport v0.34.1, gix-protocol v0.36.1, gix-revision v0.18.1, gix-refspec v0.14.1, gix-worktree v0.23.0, gix v0.50.0 (107a64e)
    • Release gix-features v0.32.1, gix-actor v0.24.1, gix-validate v0.7.7, gix-object v0.33.1, gix-path v0.8.4, gix-glob v0.10.1, gix-quote v0.4.6, gix-attributes v0.16.0, gix-command v0.2.8, gix-packetline-blocking v0.16.4, gix-filter v0.2.0, gix-fs v0.4.1, gix-chunk v0.4.4, gix-commitgraph v0.18.1, gix-hashtable v0.2.4, gix-revwalk v0.4.1, gix-traverse v0.30.1, gix-worktree-stream v0.2.0, gix-archive v0.2.0, gix-config-value v0.12.5, gix-tempfile v7.0.1, gix-utils v0.1.5, gix-lock v7.0.2, gix-ref v0.33.1, gix-sec v0.8.4, gix-prompt v0.5.4, gix-url v0.21.1, gix-credentials v0.17.1, gix-diff v0.33.1, gix-discover v0.22.1, gix-ignore v0.5.1, gix-bitmap v0.2.6, gix-index v0.21.1, gix-mailmap v0.16.1, gix-negotiate v0.5.1, gix-pack v0.40.1, gix-odb v0.50.1, gix-packetline v0.16.4, gix-transport v0.34.1, gix-protocol v0.36.1, gix-revision v0.18.1, gix-refspec v0.14.1, gix-worktree v0.23.0, gix v0.50.0, safety bump 5 crates (16295b5)
    • Prepare more changelogs (c4cc5f2)
    • Release gix-date v0.7.1, gix-hash v0.11.4, gix-trace v0.1.3, gix-features v0.32.0, gix-actor v0.24.0, gix-validate v0.7.7, gix-object v0.33.0, gix-path v0.8.4, gix-glob v0.10.0, gix-quote v0.4.6, gix-attributes v0.15.0, gix-command v0.2.7, gix-packetline-blocking v0.16.3, gix-filter v0.1.0, gix-fs v0.4.0, gix-chunk v0.4.4, gix-commitgraph v0.18.0, gix-hashtable v0.2.4, gix-revwalk v0.4.0, gix-traverse v0.30.0, gix-worktree-stream v0.2.0, gix-archive v0.2.0, gix-config-value v0.12.4, gix-tempfile v7.0.1, gix-utils v0.1.5, gix-lock v7.0.2, gix-ref v0.33.0, gix-sec v0.8.4, gix-prompt v0.5.3, gix-url v0.21.0, gix-credentials v0.17.0, gix-diff v0.33.0, gix-discover v0.22.0, gix-ignore v0.5.0, gix-bitmap v0.2.6, gix-index v0.21.0, gix-mailmap v0.16.0, gix-negotiate v0.5.0, gix-pack v0.40.0, gix-odb v0.50.0, gix-packetline v0.16.4, gix-transport v0.34.0, gix-protocol v0.36.0, gix-revision v0.18.0, gix-refspec v0.14.0, gix-worktree v0.22.0, gix v0.49.1 (5cb3589)
    • Update changelogs prior to release (2fc66b5)
    • Update license field following SPDX 2.1 license expression standard (9064ea3)

0.36.0 (2023-07-19)

A maintenance release without user-facing changes.

Commit Statistics

  • 4 commits contributed to the release.
  • 19 days passed between releases.
  • 0 commits were understood as conventional.
  • 0 issues like ‘(#ID)’ were seen in commit messages

Commit Details

  • Uncategorized
    • Release gix-filter v0.1.0, gix-ignore v0.5.0, gix-revwalk v0.4.0, gix-traverse v0.30.0, gix-index v0.21.0, gix-mailmap v0.16.0, gix-negotiate v0.5.0, gix-pack v0.40.0, gix-odb v0.50.0, gix-transport v0.34.0, gix-protocol v0.36.0, gix-revision v0.18.0, gix-refspec v0.14.0, gix-worktree v0.22.0, gix v0.49.0 (4aca8c2)
    • Release gix-features v0.32.0, gix-actor v0.24.0, gix-glob v0.10.0, gix-attributes v0.15.0, gix-commitgraph v0.18.0, gix-config-value v0.12.4, gix-fs v0.4.0, gix-object v0.33.0, gix-ref v0.33.0, gix-config v0.26.0, gix-command v0.2.7, gix-url v0.21.0, gix-credentials v0.17.0, gix-diff v0.33.0, gix-discover v0.22.0, gix-filter v0.1.0, gix-ignore v0.5.0, gix-revwalk v0.4.0, gix-traverse v0.30.0, gix-index v0.21.0, gix-mailmap v0.16.0, gix-negotiate v0.5.0, gix-pack v0.40.0, gix-odb v0.50.0, gix-transport v0.34.0, gix-protocol v0.36.0, gix-revision v0.18.0, gix-refspec v0.14.0, gix-worktree v0.22.0, gix v0.49.0 (68ae3ff)
    • Adjust package versions (by cargo-smart-release) (c70e54f)
    • Prepare changelogs prior to release (e4dded0)

0.35.0 (2023-06-29)

A maintenance release without user-facing changes.

Commit Statistics

  • 2 commits contributed to the release.
  • 6 days passed between releases.
  • 0 commits were understood as conventional.
  • 0 issues like ‘(#ID)’ were seen in commit messages

Commit Details

  • Uncategorized
    • Release gix-date v0.7.0, gix-trace v0.1.2, gix-actor v0.23.0, gix-commitgraph v0.17.1, gix-utils v0.1.4, gix-object v0.32.0, gix-ref v0.32.0, gix-config v0.25.0, gix-diff v0.32.0, gix-discover v0.21.0, gix-hashtable v0.2.3, gix-revwalk v0.3.0, gix-traverse v0.29.0, gix-index v0.20.0, gix-mailmap v0.15.0, gix-negotiate v0.4.0, gix-pack v0.39.0, gix-odb v0.49.0, gix-protocol v0.35.0, gix-revision v0.17.0, gix-refspec v0.13.0, gix-worktree v0.21.0, gix v0.48.0, safety bump 20 crates (27e8c18)
    • Prepare changelogs prior to release (00f96fb)

0.34.0 (2023-06-22)

Chore

  • Add clippy::redundant-closure-for-method-calls lint

Changed (BREAKING)

  • use SecondsSinceUnixEpoch type where needed. Previously we used usize which isn't correct on 32 bit systems.

Commit Statistics

  • 8 commits contributed to the release over the course of 11 calendar days.
  • 12 days passed between releases.
  • 2 commits were understood as conventional.
  • 0 issues like ‘(#ID)’ were seen in commit messages

Commit Details

  • Uncategorized
    • Release gix-date v0.6.0, gix-hash v0.11.3, gix-trace v0.1.1, gix-features v0.31.0, gix-actor v0.22.0, gix-path v0.8.2, gix-glob v0.9.0, gix-quote v0.4.5, gix-attributes v0.14.0, gix-chunk v0.4.3, gix-commitgraph v0.17.0, gix-config-value v0.12.2, gix-fs v0.3.0, gix-tempfile v7.0.0, gix-utils v0.1.3, gix-lock v7.0.0, gix-validate v0.7.6, gix-object v0.31.0, gix-ref v0.31.0, gix-sec v0.8.2, gix-config v0.24.0, gix-command v0.2.6, gix-prompt v0.5.2, gix-url v0.20.0, gix-credentials v0.16.0, gix-diff v0.31.0, gix-discover v0.20.0, gix-hashtable v0.2.2, gix-ignore v0.4.0, gix-bitmap v0.2.5, gix-revwalk v0.2.0, gix-traverse v0.28.0, gix-index v0.19.0, gix-mailmap v0.14.0, gix-negotiate v0.3.0, gix-pack v0.38.0, gix-odb v0.48.0, gix-packetline v0.16.3, gix-transport v0.33.0, gix-protocol v0.34.0, gix-revision v0.16.0, gix-refspec v0.12.0, gix-worktree v0.20.0, gix v0.47.0, gitoxide-core v0.29.0, gitoxide v0.27.0, safety bump 30 crates (ea9f942)
    • Prepare changelogs prior to release (18b0a37)
    • Merge branch ‘corpus’ (aa16c8c)
    • Change MSRV to 1.65 (4f635fc)
    • Merge branch ‘help-874-redundant-closures’ (fe59956)
    • Add clippy::redundant-closure-for-method-calls lint (bcad5c2)
    • Merge branch ‘future-dates’ (8d2e6a9)
    • Use SecondsSinceUnixEpoch type where needed. (9f8fa22)

0.33.2 (2023-06-10)

New Features

  • support capabilities^{} syntax to announce caps in empty repos under V1 This is supposed to work for existing code, but doesn‘t in our case as we really want to associate a branch. In this case, we can ignore the ref as it’s a null hash anyway.

Commit Statistics

  • 3 commits contributed to the release.
  • 2 days passed between releases.
  • 1 commit was understood as conventional.
  • 0 issues like ‘(#ID)’ were seen in commit messages

Commit Details

  • Uncategorized
    • Release gix-attributes v0.13.1, gix-diff v0.30.1, gix-revwalk v0.1.0, gix-traverse v0.27.0, gix-index v0.18.0, gix-revision v0.15.2, gix-negotiate v0.2.1, gix-pack v0.37.0, gix-odb v0.47.0, gix-protocol v0.33.2, gix-worktree v0.19.0, gix v0.46.0, safety bump 7 crates (2560a2c)
    • Prepare changelogs prior to release (298f3d7)
    • Support capabilities^{} syntax to announce caps in empty repos under V1 (c8e8b9f)

0.33.1 (2023-06-07)

Bug Fixes

  • assure we don't stop early on NAK if READY was sent to handle V1 specialty. Seeing READY means a pack will follow, which is exactly the kind of knowledge we want. Thus we now either listen to the client OR to what the server says.

    Note that this remedy relies on multi-ack-detailed, which some very old servers might not support. For those we would be out-of-luck, but that seems acceptable.

Commit Statistics

  • 2 commits contributed to the release.
  • 1 commit was understood as conventional.
  • 1 unique issue was worked on: #882

Commit Details

  • #882
    • Assure we don't stop early on NAK if READY was sent to handle V1 specialty. (88670c2)
  • Uncategorized
    • Release gix-protocol v0.33.1 (9c99ed3)

0.33.0 (2023-06-06)

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

  • 13 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

  • Uncategorized
    • Release gix-date v0.5.1, gix-hash v0.11.2, gix-features v0.30.0, gix-actor v0.21.0, gix-path v0.8.1, gix-glob v0.8.0, gix-quote v0.4.4, gix-attributes v0.13.0, gix-chunk v0.4.2, gix-commitgraph v0.16.0, gix-config-value v0.12.1, gix-fs v0.2.0, gix-tempfile v6.0.0, gix-utils v0.1.2, gix-lock v6.0.0, gix-validate v0.7.5, gix-object v0.30.0, gix-ref v0.30.0, gix-sec v0.8.1, gix-config v0.23.0, gix-command v0.2.5, gix-prompt v0.5.1, gix-url v0.19.0, gix-credentials v0.15.0, gix-diff v0.30.0, gix-discover v0.19.0, gix-hashtable v0.2.1, gix-ignore v0.3.0, gix-bitmap v0.2.4, gix-traverse v0.26.0, gix-index v0.17.0, gix-mailmap v0.13.0, gix-revision v0.15.0, gix-negotiate v0.2.0, gix-pack v0.36.0, gix-odb v0.46.0, gix-packetline v0.16.2, gix-transport v0.32.0, gix-protocol v0.33.0, gix-refspec v0.11.0, gix-worktree v0.18.0, gix v0.45.0, safety bump 29 crates (9a9fa96)
    • 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)

0.32.0 (2023-04-27)

A maintenance release without user-facing changes.

Commit Statistics

  • 3 commits contributed to the release.
  • 0 commits were understood as conventional.
  • 0 issues like ‘(#ID)’ were seen in commit messages

Commit Details

  • Uncategorized
    • Release gix-path v0.8.0, gix-glob v0.7.0, gix-attributes v0.12.0, gix-config-value v0.12.0, gix-ref v0.29.0, gix-sec v0.8.0, gix-config v0.22.0, gix-prompt v0.5.0, gix-url v0.18.0, gix-credentials v0.14.0, gix-discover v0.18.0, gix-ignore v0.2.0, gix-pack v0.35.0, gix-odb v0.45.0, gix-transport v0.31.0, gix-protocol v0.32.0, gix-refspec v0.10.1, gix-worktree v0.17.0, gix v0.44.1 (7ebc9f7)
    • Prepare changelogs prior to release (0135158)
    • Bump gix-path v0.8.0, safety bump 20 crates (gix set to 0.44.1 manually) (43ebaf2)

0.31.0 (2023-04-26)

New Features (BREAKING)

  • Rename serde1 cargo feature to serde and use the weak-deps cargo capability. With it it's possible to not automatically declare all optional dependencies externally visible features, and thus re-use feature names that oterwise are also a crate name.

    Previously I thought that serde1 is for future-proofing and supporting multiple serde versions at the same time. However, it‘s most definitely a burden I wouldn’t want anyway, so using serde seems to be the way to go into the future.

Commit Statistics

  • 11 commits contributed to the release over the course of 14 calendar days.
  • 27 days passed between releases.
  • 1 commit was understood as conventional.
  • 1 unique issue was worked on: #814

Thanks Clippy

Clippy helped 1 time to make code idiomatic.

Commit Details

  • #814
    • Rename serde1 cargo feature to serde and use the weak-deps cargo capability. (b83ee36)
  • Uncategorized
    • Release gix-index v0.16.0, gix-mailmap v0.12.0, gix-pack v0.34.0, gix-odb v0.44.0, gix-packetline v0.16.0, gix-transport v0.30.0, gix-protocol v0.31.0, gix-revision v0.13.0, gix-refspec v0.10.0, gix-worktree v0.16.0, gix v0.44.0 (d7173b2)
    • Release gix-index v0.16.0, gix-mailmap v0.12.0, gix-pack v0.34.0, gix-odb v0.44.0, gix-packetline v0.16.0, gix-transport v0.30.0, gix-protocol v0.31.0, gix-revision v0.13.0, gix-refspec v0.10.0, gix-worktree v0.16.0, gix v0.44.0 (e4df557)
    • Release gix-hash v0.11.1, gix-path v0.7.4, gix-glob v0.6.0, gix-attributes v0.11.0, gix-config-value v0.11.0, gix-fs v0.1.1, gix-tempfile v5.0.3, gix-utils v0.1.1, gix-lock v5.0.1, gix-object v0.29.1, gix-ref v0.28.0, gix-sec v0.7.0, gix-config v0.21.0, gix-prompt v0.4.0, gix-url v0.17.0, gix-credentials v0.13.0, gix-diff v0.29.0, gix-discover v0.17.0, gix-hashtable v0.2.0, gix-ignore v0.1.0, gix-bitmap v0.2.3, gix-traverse v0.25.0, gix-index v0.16.0, gix-mailmap v0.12.0, gix-pack v0.34.0, gix-odb v0.44.0, gix-packetline v0.16.0, gix-transport v0.30.0, gix-protocol v0.31.0, gix-revision v0.13.0, gix-refspec v0.10.0, gix-worktree v0.16.0, gix v0.44.0, safety bump 7 crates (91134a1)
    • Prepare changelogs prior to release (30a1a71)
    • Merge branch ‘fix-823’ (6ebd61e)
    • Thanks clippy (14e64e7)
    • Release gix-utils v0.1.0, gix-hash v0.11.0, gix-date v0.5.0, gix-features v0.29.0, gix-actor v0.20.0, gix-object v0.29.0, gix-archive v0.1.0, gix-fs v0.1.0, safety bump 25 crates (8dbd0a6)
    • Merge branch ‘main’ into dev (cdef398)
    • Rename the serde1 feature to serde (19338d9)
    • Release gix-hash v0.10.4, gix-hashtable v0.1.3 (b574a39)

0.30.2 (2023-03-30)

Documentation

  • fix minor typos

Commit Statistics

  • 2 commits contributed to the release over the course of 1 calendar day.
  • 4 days passed between releases.
  • 1 commit was understood as conventional.
  • 0 issues like ‘(#ID)’ were seen in commit messages

Commit Details

  • Uncategorized
    • Release gix-path v0.7.3, gix-config-value v0.10.2, gix-config v0.20.1, gix-discover v0.16.2, gix-index v0.15.1, gix-odb v0.43.1, gix-packetline v0.15.1, gix-protocol v0.30.2, gix-worktree v0.15.2, gix v0.43.1 (38eed1d)
    • Fix minor typos (cc48c35)

0.30.1 (2023-03-26)

Bug Fixes

  • don‘t assume that credential providers always return credentials or error during handshake. The type-system allows this even though when getting credentials this should never happen and won’t in the default implementation. However, users can of course return nothing and provide no error which is when we have to create one, instead of panicking.

Commit Statistics

  • 3 commits contributed to the release over the course of 5 calendar days.
  • 11 days passed between releases.
  • 1 commit was understood as conventional.
  • 0 issues like ‘(#ID)’ were seen in commit messages

Commit Details

  • Uncategorized
    • Release gix-tempfile v5.0.2, gix-validate v0.7.4, gix-config v0.20.0, gix-prompt v0.3.3, gix-diff v0.28.1, gix-discover v0.16.1, gix-pack v0.33.2, gix-transport v0.29.1, gix-protocol v0.30.1, gix-revision v0.12.1, gix-worktree v0.15.1, gix v0.43.0, safety bump gix v0.43.0 (5dc1f9f)
    • Prepare changelogs prior to release (3016a28)
    • Don't assume that credential providers always return credentials or error during handshake. (d4c82e7)

0.30.0 (2023-03-14)

A maintenance release without any user-facing changes.

Commit Statistics

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

Commit Details

  • Uncategorized
    • Release gix-features v0.28.1, gix-tempfile v5.0.1, gix-ref v0.27.1, gix-pack v0.33.1, gix-packetline v0.15.0, gix-transport v0.29.0, gix-protocol v0.30.0, gix v0.42.0, safety bump 3 crates (c1f1bfb)
    • Prepare changelogs prior to release (c66e298)
    • Make fmt (3836cc0)
    • Merge branch ‘various-fixes’ (cc0f506)
    • Adjust to changes in gix-packetline (4f45814)
    • Merge branch ‘shallow-protocol’ (531dd19)
    • Merge branch ‘fix-cred-helper’ (01277a6)

0.29.0 (2023-03-10)

A maintenance release without user-facing changes.

Commit Statistics

  • 4 commits contributed to the release.
  • 6 days passed between releases.
  • 0 commits were understood as conventional.
  • 0 issues like ‘(#ID)’ were seen in commit messages

Commit Details

  • Uncategorized
    • Release gix-tempfile v5.0.0, gix-lock v5.0.0, gix-ref v0.27.0, gix-config v0.19.0, gix-url v0.16.0, gix-credentials v0.12.0, gix-discover v0.16.0, gix-index v0.15.0, gix-pack v0.33.0, gix-odb v0.43.0, gix-transport v0.28.0, gix-protocol v0.29.0, gix-worktree v0.15.0, gix v0.41.0, safety bump 12 crates (29a0870)
    • Prepare changelogs prior to release (e06f5f5)
    • Add more fetch::Arguments tests (ac34d2e)
    • Adapt to changes in gix-transport and add V2 test for unshallow fetching (0eecfab)

0.28.0 (2023-03-04)

A maintenance release without user-facing changes.

Commit Statistics

  • 3 commits contributed to the release.
  • 3 days passed between releases.
  • 0 commits were understood as conventional.
  • 0 issues like ‘(#ID)’ were seen in commit messages

Commit Details

  • Uncategorized
    • Release gix-attributes v0.10.0, gix-ref v0.26.0, gix-config v0.18.0, gix-url v0.15.0, gix-credentials v0.11.0, gix-discover v0.15.0, gix-index v0.14.0, gix-mailmap v0.11.0, gix-odb v0.42.0, gix-transport v0.27.0, gix-protocol v0.28.0, gix-revision v0.12.0, gix-refspec v0.9.0, gix-worktree v0.14.0, gix v0.39.0 (93e75fe)
    • Prepare changelogs prior to release (895e482)
    • Release gix-features v0.28.0, gix-actor v0.19.0, gix-object v0.28.0, gix-diff v0.28.0, gix-traverse v0.24.0, gix-pack v0.32.0, safety bump 20 crates (0f411e9)

0.27.0 (2023-03-01)

A maintenance release without user-facing changes.

Commit Statistics

  • 4 commits contributed to the release.
  • 8 days passed between releases.
  • 0 commits were understood as conventional.
  • 0 issues like ‘(#ID)’ were seen in commit messages

Commit Details

  • Uncategorized
    • Release gix-tempfile v4.1.0, gix-lock v4.0.0, gix-ref v0.25.0, gix-config v0.17.0, gix-url v0.14.0, gix-credentials v0.10.0, gix-diff v0.27.0, gix-discover v0.14.0, gix-hashtable v0.1.2, gix-bitmap v0.2.2, gix-traverse v0.23.0, gix-index v0.13.0, gix-mailmap v0.10.0, gix-pack v0.31.0, gix-odb v0.41.0, gix-transport v0.26.0, gix-protocol v0.27.0, gix-revision v0.11.0, gix-refspec v0.8.0, gix-worktree v0.13.0, gix v0.38.0, safety bump 6 crates (ea9fd1d)
    • Release gix-features v0.27.0, gix-actor v0.18.0, gix-quote v0.4.3, gix-attributes v0.9.0, gix-object v0.27.0, gix-ref v0.25.0, gix-config v0.17.0, gix-url v0.14.0, gix-credentials v0.10.0, gix-diff v0.27.0, gix-discover v0.14.0, gix-hashtable v0.1.2, gix-bitmap v0.2.2, gix-traverse v0.23.0, gix-index v0.13.0, gix-mailmap v0.10.0, gix-pack v0.31.0, gix-odb v0.41.0, gix-transport v0.26.0, gix-protocol v0.27.0, gix-revision v0.11.0, gix-refspec v0.8.0, gix-worktree v0.13.0, gix v0.38.0 (e6cc618)
    • Adjust manifests prior to release (addd789)
    • Prepare changelogs prior to release (94c99c7)

0.26.4 (2023-02-20)

Bug Fixes

  • note that crates have been renamed from git-* to gix-*. This also means that the git-* prefixed crates of the gitoxide project are effectively unmaintained. Use the crates with the gix-* prefix instead.

    If you were using git-repository, then gix is its substitute.

  • compatibility with bstr v1.3, use *.as_bytes() instead of .as_ref(). as_ref() relies on a known target type which isn‘t always present. However, once there is only one implementation, that’s no problem, but when that changes compilation fails due to ambiguity.

Commit Statistics

  • 3 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

  • Uncategorized
    • Release gix-date v0.4.3, gix-hash v0.10.3, gix-features v0.26.5, gix-actor v0.17.2, gix-glob v0.5.5, gix-path v0.7.2, gix-quote v0.4.2, gix-attributes v0.8.3, gix-validate v0.7.3, gix-object v0.26.2, gix-ref v0.24.1, gix-config v0.16.2, gix-command v0.2.4, gix-url v0.13.3, gix-credentials v0.9.2, gix-discover v0.13.1, gix-index v0.12.4, gix-mailmap v0.9.3, gix-pack v0.30.3, gix-packetline v0.14.3, gix-transport v0.25.6, gix-protocol v0.26.4, gix-revision v0.10.4, gix-refspec v0.7.3, gix-worktree v0.12.3, gix v0.36.1 (9604783)
    • Compatibility with bstr v1.3, use *.as_bytes() instead of .as_ref(). (135d317)
    • Release gix-transport v0.25.5 (f872ba8)

0.26.3 (2023-02-17)

Bug Fixes (BREAKING)

  • fetch::Ref::Symbolic::target is now an option… …to represent the possibility that the server may not be able to strip its namespace if it is not the currently set namespace.

    Note that the object it points to might still be resolvable and pointing to another namespace.

New Features (BREAKING)

  • upgrade edition to 2021 in most crates. MSRV for this is 1.56, and we are now at 1.60 so should be compatible. This isn‘t more than a patch release as it should break nobody who is adhering to the MSRV, but let’s be careful and mark it breaking.

    Note that git-features and git-pack are still on edition 2018 as they make use of a workaround to support (safe) mutable access to non-overlapping entries in a slice which doesn't work anymore in edition 2021.

  • Support for unborn ls-refs capability if server supports it. We can also parse it, adding yet another variant to fetch::Refs.

  • use git-credentials in git-protocol

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.

  • fetch::Ref::unpack() returns Option<oid>. That way the caller has to be aware of the possibility of an unborn branch (probably the only unborn branch) on the remote.

  • fetch::Ref::unpack() returns &BStr instead of &BString as ref name.

  • fetch::Ref::unpack() now returns the peeled object as well.

  • rename fetch::Ref::path to fetch::Ref::full_ref_name. Previously it was inaccurately named and described due to an insufficient understanding of the ref database.

  • upgrade bstr to 1.0.1

  • replace quick-error with this-error

  • adapt to changes in git-url and use BString to represent URLs. They can contain paths, which is why String can't repsent a URL losslessly.

    For HTTP urls these are ultimately UTF-8 strings though.

Reverted

  • client::fetch_pack() isn‘t worth it after all. The overhead required to make it work isn’t worth the logic we are enabling. Instead, it's OK to re-implement custom logic on the consumer side based on this one.

Bug Fixes

  • don't enforce V2 as protocol, but smoothly downgrade like git does. For backward compatibility the shared handshake implementation allows the transport to control which protocol versions it wants to support to allow optiomizing for one special case, namely to prevent it to read all V1 refs on old servers but abort instead, closing the connection without delay.

    Now we leave this feature for custom transports (who usually come with custom servers) and instead support fallbacks to other protocols if the server demands it.

  • don't pass ‘include-tag’ as argument by default. This flag always has to be added by the caller based on configuration.

  • don't post packfile-uris capability unless we are able to make use of it. Turns out that this option can be rejected by a server that advertises it, so definitely needs more work to make it work.

  • Parse refs from bytes, not from String. The latter can cause issues around illformed UTF-8 which wouldn't bother git either.

    This comes at the expense of not parsing line by line anymore, but instead reading as fast as possible and parsing afterwards.

    Performance wise I think it doesn't matter, but it will cause more memory to be used. If this ever becomes a problem, for example during pushes where we are stuck with V1, we can consider implementing our own streaming appreach that works with packet lines instead - they are just not exposed here even though they could.

  • support keepalive packets. Keepalive packets are side-band only empty datalines that should just be ignored. This is now happening, allowing longer git operations to work as they will send keepalive packets every 5 seconds, and previously we would choke on it.

    Note that empty datalines are never send otherwise, making it a previously unused marker that can safely be skipped.

  • Link up Io error as source for error chaining; add Debug to client::fetch::Response

  • ‘(null)’ symref targets are turned into direct refs instead… …because that‘s what ‘git’ would do if it would care enough. On the client side this means one has to deal with detached heads and it’s obvious that these are detached. It‘s not clear anymore why this is the case, and probably it’s good to hide it as the current git behaviour is accidental and may change in future, and do so in a way we predict.

    There is the possibility that git would abort the entire fetch/upload-pack operation, but that's already handled correctly by our implementation as well as we understand ERR messages in packet lines.

New Features

  • display the underlying permission denied error as source when failng handshake due to authentication.

  • fetch::Arguments::use_include_tag() allows to signal include-tag. One can also check for its availability using fetch::Arguments::can_use_include_tag().

    Further there was a bugfix that assues V1 capabilities are correctly interpreted to support include-tag.

  • due to more specific errors one can differentiate if remote authentication failed repeatedly.

  • some errors support is_spurious() to tell if retrying is possible.

  • expose futures_lite for convenience in downstream crates.

  • Allow defaulting fetch::handshake::Outcome. This is useful in conjunction with std::mem::take().

  • fetch::Arguments::is_empty() to help decide if arguments should be sent at all. Furthermore, the Debug trait was added.

  • make some private methods public to give callers more flexibility. This allows to implement the fetch-negotiation part oneself and break free from constraints of the delegate.

  • add client::fetch_pack() allowing to fetch a pack after a handshake.

  • helper::main to easily create credential helper implementations

  • provide a function to gracefully shut donw a fetch transport

  • use docsrs feature in code to show what is feature-gated automatically on docs.rs

  • pass --cfg docsrs when compiling for https://docs.rs

  • re-export maybe_async That way, API users can also provide dynamically sync or async APIs.

  • add fetch::refs() method to invoke ls-refs for V2 and parse the result

  • factor fetch handshake into fetch::handshake() function

  • in-manifest and in-lib feature documentation

Chore

  • uniformize deny attributes

Changed

  • turn prepare_ls_refs in fetch::refs() into FnOnce.

Documentation

  • fix typos

Commit Statistics

Thanks Clippy

Clippy helped 29 times to make code idiomatic.

Commit Details

  • #198
    • Deduplicate conventional message ids (e695eda)
    • Regenerate all changelogs to get links (0c81769)
    • Mention actual issues that where worked on (a517e39)
    • Support writing whole bodies in conventional messages… (c1f3c9d)
    • Support for paragraphs in conventional items (7f52823)
    • Respect release-wide ignore list to allow removing entire conventional headlines (145103d)
    • Rebuild all changelogs to assure properly ordered headlines (4a9a05f)
    • Sort all commits by time, descending… (f536bad)
    • Greatly reduce changelog size now that the traversal fix is applied (a0bc98c)
    • Fixup remaining changelogs… (2f75db2)
    • Generate changelogs with details (e1861ca)
    • Update all changelogs with details (58ab2ae)
    • Update changelogs (c857d61)
    • Fix docs (f1fa6dd)
    • Avoid adding newlines which make writing unstable (6b5c394)
    • Fix section headline level (9d6f263)
    • Write first version of changlogs thus far… (719b6bd)
    • Parse more user generated section content, adapt existing changelogs to work correctly (2f43a54)
  • #200
    • Feat: Lift io::Errors to response::Error::UploadPack(…)… (f293b63)
  • #205
    • ‘(null)’ symref targets are turned into direct refs instead… (c77bd7a)
    • Fetch::Ref::Symbolic::target is now an option… (da68bfb)
  • #222
    • Update changelogs prior to release (9a493d0)
    • Stabilize changelogs (920e832)
    • Update changelogs prior to release (b3e2252)
  • #254
    • Adjust changelogs prior to git-pack release (6776a3f)
  • #279
    • Adjust to changes in git-hash (07aa1bc)
  • #301
    • Update changelogs prior to release (84cb256)
  • #329
    • In-manifest and in-lib feature documentation (0826cc9)
    • Document all features related to serde1 (72b97f2)
  • #386
    • Adapt to changes in git-sec (c5e2346)
    • Use git-credentials in git-protocol (32dc182)
    • Reduce API surface (6df2881)
  • #450
    • Don‘t degenerate information about the unborn fetch ref’s path. (42c977f)
    • fetch::Ref::unpack() returns Option<oid>. (cd867ad)
    • Support for unborn ls-refs capability if server supports it. (02e37f0)
    • Less noisy way of writing trait bounds (b593806)
    • Upgrade to prodash v21 (a0655dc)
    • Improve docs slightly (306ebef)
    • Support keepalive packets. (d7f62b4)
    • Properly implement fetch::Arguments::is_empty() (df36ede)
    • Link up Io error as source for error chaining; add Debug to client::fetch::Response (266395e)
    • Allow defaulting fetch::handshake::Outcome. (aed93d2)
    • fetch::Arguments::is_empty() to help decide if arguments should be sent at all. (0bcb2fd)
    • Make some private methods public to give callers more flexibility. (31a7089)
    • Use &dyn Any instead of unspecified serialization format, as it's the right way. (779eefe)
    • Adapt to changes in git-transport (e842843)
    • client::fetch_pack() isn't worth it after all. (f87b7eb)
    • Add client::fetch_pack() allowing to fetch a pack after a handshake. (744ed03)
    • Refactor (c3e4b2a)
    • Update fetch feature list with wait-for-done (02245a6)
    • Turn prepare_ls_refs in fetch::refs() into FnOnce. (3a38d1b)
    • Improve docs a little (45394d5)
    • Option to print server information about the connection (4720666)
    • Adjust to changes in git-refspec (ffa24a1)
    • fetch::Ref::unpack() returns &BStr instead of &BString as ref name. (91f193f)
    • fetch::Ref::unpack() now returns the peeled object as well. (d2c772e)
    • Rename fetch::Ref::path to fetch::Ref::full_ref_name. (bab5860)
    • Upgrade bstr to 1.0.1 (99905ba)
    • Adjust to changes in git-credentials (32758e8)
    • Adapt to changes in git-credentials (27c9da5)
    • Improved error when identity could not be obtained (08c1287)
    • helper::main to easily create credential helper implementations (eaff67c)
    • Adjust to changes in git-credentials (33f1347)
    • Adjust to changes in git-credentials (fe1a06d)
    • Adjust to changes in git-credentials (40cc1dc)
    • Refactor (077ab57)
    • Provide a function to gracefully shut donw a fetch transport (5ba9e1d)
    • Re-export maybe_async (d6b4878)
    • Fix docs (a6105cb)
    • Use fetch::refs() function in fetch() (37504e6)
    • Add fetch::refs() method to invoke ls-refs for V2 and parse the result (d2de51d)
    • Refactor (41a7391)
    • Use handshake() function in fetch() method (aaa1680)
    • Replace quick-error with this-error (e91c301)
    • Factor fetch handshake into fetch::handshake() function (35d17b4)
    • Sketch of simple delegate to collect listed refs (1c5f561)
    • A first sketch on how connections could be working (e55b43e)
    • Adjust to changes in git-transport (2141585)
    • Adapt to changes in git-url and use BString to represent URLs. (12589cc)
  • #470
    • Update changelogs prior to release (caa7a1b)
  • #63
    • Git-protocol uses oid type (3930a6f)
    • Refactor; better errors for invalid hash sizes (be84b36)
    • Make ObjectId/oid happen! (ca78d15)
    • Remove all public exports of git-hash types in git-object (accf89d)
    • Remove re-export of git_object::borrowed::Id (a3f2816)
    • Make git-hash Error usage explicit (it's for decoding only) (4805cfc)
  • #639
    • Don't post packfile-uris capability unless we are able to make use of it. (24000fa)
  • #691
  • #XXX
    • Prepare changelogs prior to release (8c0bca3)
  • Uncategorized
    • Release gix-transport v0.25.4, gix-protocol v0.26.3, gix-revision v0.10.3, gix-refspec v0.7.2, gix-worktree v0.12.2, gix v0.36.0 (7fc00f8)
    • Release gix-pack v0.30.2, gix-odb v0.40.2, gix-packetline v0.14.2, gix-transport v0.25.4, gix-protocol v0.26.3, gix-revision v0.10.3, gix-refspec v0.7.2, gix-worktree v0.12.2, gix v0.36.0 (59e9fac)
    • Release gix-index v0.12.3, gix-mailmap v0.9.2, gix-chunk v0.4.1, gix-pack v0.30.2, gix-odb v0.40.2, gix-packetline v0.14.2, gix-transport v0.25.4, gix-protocol v0.26.3, gix-revision v0.10.3, gix-refspec v0.7.2, gix-worktree v0.12.2, gix v0.36.0 (48f5bd2)
    • Release gix-credentials v0.9.1, gix-diff v0.26.1, gix-discover v0.13.0, gix-hashtable v0.1.1, gix-bitmap v0.2.1, gix-traverse v0.22.1, gix-index v0.12.3, gix-mailmap v0.9.2, gix-chunk v0.4.1, gix-pack v0.30.2, gix-odb v0.40.2, gix-packetline v0.14.2, gix-transport v0.25.4, gix-protocol v0.26.3, gix-revision v0.10.3, gix-refspec v0.7.2, gix-worktree v0.12.2, gix v0.36.0 (a5869e0)
    • Release gix-config v0.16.1, gix-command v0.2.3, gix-prompt v0.3.2, gix-url v0.13.2, gix-credentials v0.9.1, gix-diff v0.26.1, gix-discover v0.13.0, gix-hashtable v0.1.1, gix-bitmap v0.2.1, gix-traverse v0.22.1, gix-index v0.12.3, gix-mailmap v0.9.2, gix-chunk v0.4.1, gix-pack v0.30.2, gix-odb v0.40.2, gix-packetline v0.14.2, gix-transport v0.25.4, gix-protocol v0.26.3, gix-revision v0.10.3, gix-refspec v0.7.2, gix-worktree v0.12.2, gix v0.36.0 (41d57b9)
    • Release gix-attributes v0.8.2, gix-config-value v0.10.1, gix-tempfile v3.0.2, gix-lock v3.0.2, gix-validate v0.7.2, gix-object v0.26.1, gix-ref v0.24.0, gix-sec v0.6.2, gix-config v0.16.1, gix-command v0.2.3, gix-prompt v0.3.2, gix-url v0.13.2, gix-credentials v0.9.1, gix-diff v0.26.1, gix-discover v0.13.0, gix-hashtable v0.1.1, gix-bitmap v0.2.1, gix-traverse v0.22.1, gix-index v0.12.3, gix-mailmap v0.9.2, gix-chunk v0.4.1, gix-pack v0.30.2, gix-odb v0.40.2, gix-packetline v0.14.2, gix-transport v0.25.4, gix-protocol v0.26.3, gix-revision v0.10.3, gix-refspec v0.7.2, gix-worktree v0.12.2, gix v0.36.0 (e313112)
    • Release gix-features v0.26.4, gix-actor v0.17.1, gix-glob v0.5.3, gix-path v0.7.1, gix-quote v0.4.1, gix-attributes v0.8.2, gix-config-value v0.10.1, gix-tempfile v3.0.2, gix-lock v3.0.2, gix-validate v0.7.2, gix-object v0.26.1, gix-ref v0.24.0, gix-sec v0.6.2, gix-config v0.16.1, gix-command v0.2.3, gix-prompt v0.3.2, gix-url v0.13.2, gix-credentials v0.9.1, gix-diff v0.26.1, gix-discover v0.13.0, gix-hashtable v0.1.1, gix-bitmap v0.2.1, gix-traverse v0.22.1, gix-index v0.12.3, gix-mailmap v0.9.2, gix-chunk v0.4.1, gix-pack v0.30.2, gix-odb v0.40.2, gix-packetline v0.14.2, gix-transport v0.25.4, gix-protocol v0.26.3, gix-revision v0.10.3, gix-refspec v0.7.2, gix-worktree v0.12.2, gix v0.36.0 (6efd0d3)
    • Release gix-date v0.4.2, gix-hash v0.10.2, gix-features v0.26.4, gix-actor v0.17.1, gix-glob v0.5.3, gix-path v0.7.1, gix-quote v0.4.1, gix-attributes v0.8.2, gix-config-value v0.10.1, gix-tempfile v3.0.2, gix-lock v3.0.2, gix-validate v0.7.2, gix-object v0.26.1, gix-ref v0.24.0, gix-sec v0.6.2, gix-config v0.16.1, gix-command v0.2.3, gix-prompt v0.3.2, gix-url v0.13.2, gix-credentials v0.9.1, gix-diff v0.26.1, gix-discover v0.13.0, gix-hashtable v0.1.1, gix-bitmap v0.2.1, gix-traverse v0.22.1, gix-index v0.12.3, gix-mailmap v0.9.2, gix-chunk v0.4.1, gix-pack v0.30.2, gix-odb v0.40.2, gix-packetline v0.14.2, gix-transport v0.25.4, gix-protocol v0.26.3, gix-revision v0.10.3, gix-refspec v0.7.2, gix-worktree v0.12.2, gix v0.36.0 (6ccc88a)
    • Merge branch ‘rename-crates’ into inform-about-gix-rename (c9275b9)
    • Rename git-testtools to gix-testtools (b65c33d)
    • Adjust to renaming of git-pack to gix-pack (1ee81ad)
    • Adjust to renaming of git-odb to gix-odb (476e2ad)
    • Adjust to renaming of git-index to gix-index (86db5e0)
    • Adjust to renaming of git-diff to gix-diff (49a163e)
    • Adjust to renaming of git-commitgraph to gix-commitgraph (f1dd0a3)
    • Adjust to renaming of git-mailmap to gix-mailmap (2e28c56)
    • Adjust to renaming of git-discover to gix-discover (53adfe1)
    • Adjust to renaming of git-chunk to gix-chunk (59194e3)
    • Adjust to renaming of git-bitmap to gix-bitmap (75f2a07)
    • Adjust to renaming for git-protocol to gix-protocol (823795a)
    • Rename git-protocol to gix-protocol (9a35a90)
    • Adjust to renaming of git-refspec to gix-refspec (c958802)
    • Adjust to renaming of git-revision to gix-revision (ee0ee84)
    • Adjust to renaming of git-transport to gix-transport (b2ccf71)
    • Adjust to renaming of git-credentials to gix-credentials (6b18abc)
    • Adjust to renaming of git-prompt to gix-prompt (6a4654e)
    • Adjust to renaming of git-command to gix-command (d26b8e0)
    • Adjust to renaming of git-packetline to gix-packetline (5cbd22c)
    • Adjust to renaming of git-worktree to gix-worktree (73a1282)
    • Adjust to renamining of git-hashtable to gix-hashtable (26a0c98)
    • Adjust to renamining of git-worktree to gix-worktree (108bb1a)
    • Adjust to renaming of git-url to gix-url (b50817a)
    • Adjust to renaming of git-date to gix-date (9a79ff2)
    • Adjust to renamining of git-attributes to gix-attributes (4a8b3b8)
    • Adjust to renaminig of git-quote to gix-quote (648025b)
    • Adjust to renaming of git-config to gix-config (3a861c8)
    • Adjust to renaming of git-ref to gix-ref (1f5f695)
    • Adjust to renaming of git-lock to gix-lock (2028e78)
    • Adjust to renaming of git-tempfile to gix-tempfile (b6cc3eb)
    • Adjust to renaming of git-object to gix-object (fc86a1e)
    • Adjust to renaming of git-actor to gix-actor (4dc9b44)
    • Adjust to renaming of git-validate to gix-validate (5e40ad0)
    • Adjust to renaming of git-hash to gix-hash (4a9d025)
    • Adjust to renaming of git-features to gix-features (e2dd68a)
    • Adjust to renaming of git-glob to gix-glob (35b2a3a)
    • Adjust to renaming of git-sec to gix-sec (eabbb92)
    • Adapt to renaming of git-path to gix-path (d3bbcfc)
    • Adjust to rename of git-config-value to gix-config-value (622b3e1)
    • Release git-features v0.26.4 (109f434)
    • Release git-features v0.26.3 (1ecfb7f)
    • Release git-date v0.4.2, git-hash v0.10.2, git-features v0.26.2, git-actor v0.17.1, git-glob v0.5.3, git-path v0.7.1, git-quote v0.4.1, git-attributes v0.8.2, git-config-value v0.10.1, git-tempfile v3.0.2, git-lock v3.0.2, git-validate v0.7.2, git-object v0.26.1, git-ref v0.24.0, git-sec v0.6.2, git-config v0.16.0, git-command v0.2.3, git-prompt v0.3.2, git-url v0.13.2, git-credentials v0.9.1, git-diff v0.26.1, git-discover v0.13.0, git-hashtable v0.1.1, git-bitmap v0.2.1, git-traverse v0.22.1, git-index v0.12.3, git-mailmap v0.9.2, git-chunk v0.4.1, git-pack v0.30.2, git-odb v0.40.2, git-packetline v0.14.2, git-transport v0.25.4, git-protocol v0.26.3, git-revision v0.10.2, git-refspec v0.7.2, git-worktree v0.12.2, git-repository v0.34.0, safety bump 3 crates (c196d20)
    • Prepare changelogs prior to release (7c846d2)
    • Merge branch ‘Lioness100/main’ (1e544e8)
    • Fix typos (39ed9ed)
    • Thanks clippy (bac57dd)
    • Break cyclical dev dependencies (1fea18f)
    • Release git-date v0.4.1, git-features v0.26.1, git-glob v0.5.2, git-attributes v0.8.1, git-tempfile v3.0.1, git-ref v0.23.1, git-sec v0.6.1, git-config v0.15.1, git-prompt v0.3.1, git-url v0.13.1, git-discover v0.12.1, git-index v0.12.2, git-mailmap v0.9.1, git-pack v0.30.1, git-odb v0.40.1, git-transport v0.25.3, git-protocol v0.26.2, git-revision v0.10.1, git-refspec v0.7.1, git-worktree v0.12.1, git-repository v0.33.0 (5b5b380)
    • Prepare changelogs prior to release (93bef97)
    • Merge branch ‘patch-1’ (b93f0c4)
    • Thanks clippy (b34c9fe)
    • Release git-ref v0.23.0, git-config v0.15.0, git-command v0.2.2, git-diff v0.26.0, git-discover v0.12.0, git-mailmap v0.9.0, git-pack v0.30.0, git-odb v0.40.0, git-transport v0.25.2, git-protocol v0.26.1, git-revision v0.10.0, git-refspec v0.7.0, git-worktree v0.12.0, git-repository v0.32.0 (ffb5b6a)
    • Prepare changelogs prior to release (4381a03)
    • Release git-transport v0.25.1 (e0b12fe)
    • Release git-features v0.26.0, git-actor v0.16.0, git-attributes v0.8.0, git-object v0.25.0, git-ref v0.22.0, git-config v0.14.0, git-command v0.2.1, git-url v0.13.0, git-credentials v0.9.0, git-diff v0.25.0, git-discover v0.11.0, git-traverse v0.21.0, git-index v0.11.0, git-mailmap v0.8.0, git-pack v0.29.0, git-odb v0.39.0, git-transport v0.25.0, git-protocol v0.26.0, git-revision v0.9.0, git-refspec v0.6.0, git-worktree v0.11.0, git-repository v0.31.0, safety bump 24 crates (5ac9fbe)
    • Prepare changelogs prior to release (30d8ca1)
    • Display the underlying permission denied error as source when failng handshake due to authentication. (4b8abb0)
    • Release git-url v0.12.1, git-transport v0.24.1, git-protocol v0.25.1, git-repository v0.30.1, git-commitgraph v0.12.0, gitoxide-core v0.22.0, gitoxide v0.20.0 (08ec3a9)
    • Prepare changelogs prior to release (68ce15d)
    • Merge branch ‘adjustments-for-cargo’ (5afa7f5)
    • Release git-date v0.3.1, git-features v0.25.0, git-actor v0.15.0, git-glob v0.5.1, git-path v0.7.0, git-attributes v0.7.0, git-config-value v0.10.0, git-lock v3.0.1, git-validate v0.7.1, git-object v0.24.0, git-ref v0.21.0, git-sec v0.6.0, git-config v0.13.0, git-prompt v0.3.0, git-url v0.12.0, git-credentials v0.8.0, git-diff v0.24.0, git-discover v0.10.0, git-traverse v0.20.0, git-index v0.10.0, git-mailmap v0.7.0, git-pack v0.28.0, git-odb v0.38.0, git-packetline v0.14.1, git-transport v0.24.0, git-protocol v0.25.0, git-revision v0.8.0, git-refspec v0.5.0, git-worktree v0.10.0, git-repository v0.30.0, safety bump 26 crates (e6b9906)
    • Prepare chnagelogs prior to git-repository release (7114bbb)
    • Don't enforce V2 as protocol, but smoothly downgrade like git does. (5f2276b)
    • Merge branch ‘main’ into read-split-index (c57bdde)
    • Merge branch ‘adjustments-for-cargo’ (083909b)
    • fetch::Arguments::use_include_tag() allows to signal include-tag. (5a50d95)
    • Don't pass ‘include-tag’ as argument by default. (a872782)
    • Merge branch ‘adjustments-for-cargo’ (94750e1)
    • Due to more specific errors one can differentiate if remote authentication failed repeatedly. (1c0a6c0)
    • Merge branch ‘adjustments-for-cargo’ (70ccbb2)
    • Some errors support is_spurious() to tell if retrying is possible. (2363bcb)
    • Adapt to changes in git-transport (527c62e)
    • Merge branch ‘fix-638’ (eb4c5f0)
    • Merge branch ‘fixture-async’ (eca6705)
    • Async version of ref-line parsing now reads line by line. (dadd896)
    • Add Fixture implementation for async. (b583c2a)
    • Release git-hash v0.10.1, git-hashtable v0.1.0 (7717170)
    • Merge branch ‘remove-lines-parsing’ (9d8e32d)
    • Parse refs from bytes, not from String. (806b8c2)
    • Adapt to changes in git-transport (49461b1)
    • Merge branch ‘main’ into http-config (6b9632e)
    • Release git-features v0.24.1, git-actor v0.14.1, git-index v0.9.1 (7893502)
    • Merge branch ‘main’ into http-config (bcd9654)
    • Make fmt (0abab7d)
    • Release git-hash v0.10.0, git-features v0.24.0, git-date v0.3.0, git-actor v0.14.0, git-glob v0.5.0, git-path v0.6.0, git-quote v0.4.0, git-attributes v0.6.0, git-config-value v0.9.0, git-tempfile v3.0.0, git-lock v3.0.0, git-validate v0.7.0, git-object v0.23.0, git-ref v0.20.0, git-sec v0.5.0, git-config v0.12.0, git-command v0.2.0, git-prompt v0.2.0, git-url v0.11.0, git-credentials v0.7.0, git-diff v0.23.0, git-discover v0.9.0, git-bitmap v0.2.0, git-traverse v0.19.0, git-index v0.9.0, git-mailmap v0.6.0, git-chunk v0.4.0, git-pack v0.27.0, git-odb v0.37.0, git-packetline v0.14.0, git-transport v0.23.0, git-protocol v0.24.0, git-revision v0.7.0, git-refspec v0.4.0, git-worktree v0.9.0, git-repository v0.29.0, git-commitgraph v0.11.0, gitoxide-core v0.21.0, gitoxide v0.19.0, safety bump 28 crates (b2c301e)
    • Prepare changelogs prior to release (e4648f8)
    • Merge branch ‘version2021’ (0e4462d)
    • Upgrade edition to 2021 in most crates. (3d8fa8f)
    • Release git-glob v0.4.2, git-config-value v0.8.2, git-lock v2.2.0, git-ref v0.19.0, git-config v0.11.0, git-discover v0.8.0, git-index v0.8.0, git-transport v0.22.0, git-protocol v0.23.0, git-worktree v0.8.0, git-repository v0.28.0, gitoxide-core v0.20.0, gitoxide v0.18.0, safety bump 9 crates (0c253b1)
    • 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)
    • Release git-features v0.23.1, git-glob v0.4.1, git-config-value v0.8.1, git-tempfile v2.0.6, git-object v0.22.1, git-ref v0.18.0, git-sec v0.4.2, git-config v0.10.0, git-prompt v0.1.1, git-url v0.10.1, git-credentials v0.6.1, git-diff v0.21.0, git-discover v0.7.0, git-index v0.7.0, git-pack v0.25.0, git-odb v0.35.0, git-transport v0.21.1, git-protocol v0.22.0, git-refspec v0.3.1, git-worktree v0.7.0, git-repository v0.26.0, git-commitgraph v0.10.0, gitoxide-core v0.19.0, gitoxide v0.17.0, safety bump 9 crates (d071583)
    • Prepare changelogs prior to release (423af90)
    • Merge branch ‘main’ into write-sparse-index (upgrade to Rust 1.65) (5406630)
    • Thanks clippy (04cfa63)
    • Merge branch ‘main’ into write-sparse-index (c4e6849)
    • Merge branch ‘gix-clone’ (def53b3)
    • Thanks clippy (bc9c780)
    • Release git-hash v0.9.11, git-features v0.23.0, git-actor v0.13.0, git-attributes v0.5.0, git-object v0.22.0, git-ref v0.17.0, git-sec v0.4.1, git-config v0.9.0, git-url v0.10.0, git-credentials v0.6.0, git-diff v0.20.0, git-discover v0.6.0, git-traverse v0.18.0, git-index v0.6.0, git-mailmap v0.5.0, git-pack v0.24.0, git-odb v0.34.0, git-packetline v0.13.1, git-transport v0.21.0, git-protocol v0.21.0, git-revision v0.6.0, git-refspec v0.3.0, git-worktree v0.6.0, git-repository v0.25.0, safety bump 24 crates (104d922)
    • Prepare changelogs for release (d232567)
    • Merge branch ‘main’ into new-http-impl (702a161)
    • Merge branch ‘fetch-pack’ (f47c891)
    • Merge branch ‘fetch-pack’ (3c49400)
    • Merge branch ‘fix-git-features’ (82fd251)
    • Merge branch ‘diff’ (25a7726)
    • Release git-command v0.1.0, git-prompt v0.1.0, git-url v0.9.0, git-credentials v0.5.0, git-diff v0.19.0, git-mailmap v0.4.0, git-chunk v0.3.2, git-pack v0.23.0, git-odb v0.33.0, git-packetline v0.13.0, git-transport v0.20.0, git-protocol v0.20.0, git-revision v0.5.0, git-refspec v0.2.0, git-repository v0.24.0, git-commitgraph v0.9.0, gitoxide-core v0.18.0, gitoxide v0.16.0 (f5c36d8)
    • Release git-hash v0.9.10, git-features v0.22.5, git-date v0.2.0, git-actor v0.12.0, git-glob v0.4.0, git-path v0.5.0, git-quote v0.3.0, git-attributes v0.4.0, git-config-value v0.8.0, git-tempfile v2.0.5, git-validate v0.6.0, git-object v0.21.0, git-ref v0.16.0, git-sec v0.4.0, git-config v0.8.0, git-discover v0.5.0, git-traverse v0.17.0, git-index v0.5.0, git-worktree v0.5.0, git-testtools v0.9.0, git-command v0.1.0, git-prompt v0.1.0, git-url v0.9.0, git-credentials v0.5.0, git-diff v0.19.0, git-mailmap v0.4.0, git-chunk v0.3.2, git-pack v0.23.0, git-odb v0.33.0, git-packetline v0.13.0, git-transport v0.20.0, git-protocol v0.20.0, git-revision v0.5.0, git-refspec v0.2.0, git-repository v0.24.0, git-commitgraph v0.9.0, gitoxide-core v0.18.0, gitoxide v0.16.0, safety bump 28 crates (29a043b)
    • Merge branch ‘filter-refs’ (3773b92)
    • Merge branch ‘filter-refs’ (fd14489)
    • Release git-features v0.22.6 (c9eda72)
    • Make fmt (535e967)
    • Merge branch ‘filter-refs-by-spec’ (5c05198)
    • Merge branch ‘main’ into filter-refs-by-spec (9aa1d3d)
    • Release git-features v0.22.4, git-url v0.8.0, safety bump 4 crates (1d4600a)
    • Merge branch ‘main’ into filter-refs-by-spec (1f6e5ab)
    • Merge branch ‘fix-522’ (5869e9f)
    • Release git-hash v0.9.9 (da0716f)
    • Merge branch ‘main’ into index-from-tree (bc64b96)
    • Merge branch ‘main’ into filter-refs-by-spec (cef0b51)
    • Release git-object v0.20.3, git-ref v0.15.4, git-config v0.7.1, git-diff v0.18.0, git-traverse v0.16.3, git-pack v0.22.0, git-odb v0.32.0, git-url v0.7.3, git-transport v0.19.3, git-protocol v0.19.1, git-refspec v0.1.1, git-repository v0.23.0, safety bump 6 crates (85a3bed)
    • Release git-features v0.22.3, git-revision v0.4.4 (c2660e2)
    • Merge branch ‘main’ into filter-refs-by-spec (cfa1440)
    • Release git-date v0.0.5, git-hash v0.9.8, git-features v0.22.2, git-actor v0.11.3, git-glob v0.3.2, git-quote v0.2.1, git-attributes v0.3.2, git-tempfile v2.0.4, git-lock v2.1.1, git-validate v0.5.5, git-object v0.20.2, git-ref v0.15.2, git-sec v0.3.1, git-config v0.7.0, git-credentials v0.4.0, git-diff v0.17.2, git-discover v0.4.1, git-bitmap v0.1.2, git-index v0.4.2, git-mailmap v0.3.2, git-chunk v0.3.1, git-traverse v0.16.2, git-pack v0.21.2, git-odb v0.31.2, git-packetline v0.12.7, git-url v0.7.2, git-transport v0.19.2, git-protocol v0.19.0, git-revision v0.4.2, git-refspec v0.1.0, git-worktree v0.4.2, git-repository v0.22.0, safety bump 4 crates (4974eca)
    • Merge branch ‘remote-ls-refs’ (39d585d)
    • Merge branch ‘main’ into remote-ls-refs (e2ee3de)
    • Merge branch ‘docsrs-show-features’ (31c2351)
    • Use docsrs feature in code to show what is feature-gated automatically on docs.rs (b1c40b0)
    • Uniformize deny attributes (f7f136d)
    • Pass --cfg docsrs when compiling for https://docs.rs (5176771)
    • Merge branch ‘main’ into remote-ls-refs (bd5f3e8)
    • Release git-date v0.0.3, git-actor v0.11.1, git-attributes v0.3.1, git-tempfile v2.0.3, git-object v0.20.1, git-ref v0.15.1, git-config v0.6.1, git-diff v0.17.1, git-discover v0.4.0, git-bitmap v0.1.1, git-index v0.4.1, git-mailmap v0.3.1, git-traverse v0.16.1, git-pack v0.21.1, git-odb v0.31.1, git-packetline v0.12.6, git-url v0.7.1, git-transport v0.19.1, git-protocol v0.18.1, git-revision v0.4.0, git-worktree v0.4.1, git-repository v0.21.0, safety bump 5 crates (c96473d)
    • Prepare changelogs prior to reelase (c06ae1c)
    • Thanks clippy (f48ac49)
    • Release git-hash v0.9.7, git-features v0.22.1 (232784a)
    • Merge pull request #2 from SidneyDouw/main (ce885ad)
    • Merge branch ‘Byron:main’ into main (9b9ea02)
    • Merge branch ‘main’ into rev-parse-delegate (6da8250)
    • Merge branch ‘main’ into pathspec (7b61506)
    • Merge branch ‘kianmeng-fix-typos’ (4e7b343)
    • Fix typos (e9fcb70)
    • Release git-config v0.6.0, git-credentials v0.3.0, git-diff v0.17.0, git-discover v0.3.0, git-index v0.4.0, git-mailmap v0.3.0, git-traverse v0.16.0, git-pack v0.21.0, git-odb v0.31.0, git-url v0.7.0, git-transport v0.19.0, git-protocol v0.18.0, git-revision v0.3.0, git-worktree v0.4.0, git-repository v0.20.0, git-commitgraph v0.8.0, gitoxide-core v0.15.0, gitoxide v0.13.0 (aa639d8)
    • Release git-hash v0.9.6, git-features v0.22.0, git-date v0.0.2, git-actor v0.11.0, git-glob v0.3.1, git-path v0.4.0, git-attributes v0.3.0, git-tempfile v2.0.2, git-object v0.20.0, git-ref v0.15.0, git-sec v0.3.0, git-config v0.6.0, git-credentials v0.3.0, git-diff v0.17.0, git-discover v0.3.0, git-index v0.4.0, git-mailmap v0.3.0, git-traverse v0.16.0, git-pack v0.21.0, git-odb v0.31.0, git-url v0.7.0, git-transport v0.19.0, git-protocol v0.18.0, git-revision v0.3.0, git-worktree v0.4.0, git-repository v0.20.0, git-commitgraph v0.8.0, gitoxide-core v0.15.0, gitoxide v0.13.0, safety bump 22 crates (4737b1e)
    • Prepare changelog prior to release (3c50625)
    • Merge pull request #1 from Byron/main (085e76b)
    • Merge branch ‘main’ into pathspec (89ea12b)
    • Merge branch ‘main’ into cont_include_if (41ea8ba)
    • Release git-path v0.3.0, safety bump 14 crates (400c9be)
    • Release git-date v0.0.1, git-hash v0.9.5, git-features v0.21.1, git-actor v0.10.1, git-path v0.2.0, git-attributes v0.2.0, git-ref v0.14.0, git-sec v0.2.0, git-config v0.5.0, git-credentials v0.2.0, git-discover v0.2.0, git-pack v0.20.0, git-odb v0.30.0, git-url v0.6.0, git-transport v0.18.0, git-protocol v0.17.0, git-revision v0.2.1, git-worktree v0.3.0, git-repository v0.19.0, safety bump 13 crates (a417177)
    • Update changelogs prior to release (bb424f5)
    • Merge branch ‘main’ into SidneyDouw-pathspec (a22b1d8)
    • Merge branch ‘main’ into git_includeif (598c853)
    • Release git-ref v0.13.0, git-discover v0.1.0, git-index v0.3.0, git-mailmap v0.2.0, git-traverse v0.15.0, git-pack v0.19.0, git-odb v0.29.0, git-packetline v0.12.5, git-url v0.5.0, git-transport v0.17.0, git-protocol v0.16.0, git-revision v0.2.0, git-worktree v0.2.0, git-repository v0.17.0 (349c590)
    • Release git-hash v0.9.4, git-features v0.21.0, git-actor v0.10.0, git-glob v0.3.0, git-path v0.1.1, git-attributes v0.1.0, git-sec v0.1.0, git-config v0.3.0, git-credentials v0.1.0, git-validate v0.5.4, git-object v0.19.0, git-diff v0.16.0, git-lock v2.1.0, git-ref v0.13.0, git-discover v0.1.0, git-index v0.3.0, git-mailmap v0.2.0, git-traverse v0.15.0, git-pack v0.19.0, git-odb v0.29.0, git-packetline v0.12.5, git-url v0.5.0, git-transport v0.17.0, git-protocol v0.16.0, git-revision v0.2.0, git-worktree v0.2.0, git-repository v0.17.0, safety bump 20 crates (654cf39)
    • Merge branch ‘main’ into repo-status (9679d6b)
    • Merge branch ‘git-sec’ (cd723b5)
    • Release git-diff v0.14.0, git-bitmap v0.1.0, git-index v0.2.0, git-tempfile v2.0.1, git-lock v2.0.0, git-mailmap v0.1.0, git-traverse v0.13.0, git-pack v0.17.0, git-quote v0.2.0, git-odb v0.27.0, git-packetline v0.12.4, git-url v0.4.0, git-transport v0.16.0, git-protocol v0.15.0, git-ref v0.12.0, git-worktree v0.1.0, git-repository v0.15.0, cargo-smart-release v0.9.0, safety bump 5 crates (e58dc30)
    • Release git-hash v0.9.3, git-features v0.20.0, git-config v0.2.0, safety bump 12 crates (f0cbb24)
    • Merge branch ‘short-id’ (5849d5b)
    • Thanks clippy (4618f8a)
    • Upgrade document-features (c35e62e)
    • Release git-hash v0.9.2, git-object v0.17.1, git-pack v0.16.1 (0db19b8)
    • Release git-protocol v0.14.0, git-ref v0.11.0, git-repository v0.14.0, cargo-smart-release v0.8.0 (b286b24)
    • Release git-odb v0.26.0, git-packetline v0.12.3, git-url v0.3.5, git-transport v0.15.0, git-protocol v0.14.0, git-ref v0.11.0, git-repository v0.14.0, cargo-smart-release v0.8.0 (42ebb53)
    • Release git-diff v0.13.0, git-tempfile v1.0.4, git-chunk v0.3.0, git-traverse v0.12.0, git-pack v0.16.0, git-odb v0.26.0, git-packetline v0.12.3, git-url v0.3.5, git-transport v0.15.0, git-protocol v0.14.0, git-ref v0.11.0, git-repository v0.14.0, cargo-smart-release v0.8.0 (1b76119)
    • Release git-actor v0.8.0, git-config v0.1.10, git-object v0.17.0, git-diff v0.13.0, git-tempfile v1.0.4, git-chunk v0.3.0, git-traverse v0.12.0, git-pack v0.16.0, git-odb v0.26.0, git-packetline v0.12.3, git-url v0.3.5, git-transport v0.15.0, git-protocol v0.14.0, git-ref v0.11.0, git-repository v0.14.0, cargo-smart-release v0.8.0 (8f57c29)
    • Release git-features v0.19.1, git-actor v0.8.0, git-config v0.1.10, git-object v0.17.0, git-diff v0.13.0, git-tempfile v1.0.4, git-chunk v0.3.0, git-traverse v0.12.0, git-pack v0.16.0, git-odb v0.26.0, git-packetline v0.12.3, git-url v0.3.5, git-transport v0.15.0, git-protocol v0.14.0, git-ref v0.11.0, git-repository v0.14.0, cargo-smart-release v0.8.0 (d78aab7)
    • Release git-hash v0.9.1, git-features v0.19.1, git-actor v0.8.0, git-config v0.1.10, git-object v0.17.0, git-diff v0.13.0, git-tempfile v1.0.4, git-chunk v0.3.0, git-traverse v0.12.0, git-pack v0.16.0, git-odb v0.26.0, git-packetline v0.12.3, git-url v0.3.5, git-transport v0.15.0, git-protocol v0.14.0, git-ref v0.11.0, git-repository v0.14.0, cargo-smart-release v0.8.0, safety bump 4 crates (373cbc8)
    • Prepare changelogs for release (674ec73)
    • Prepar changelogs for cargo-smart-release release (8900d69)
    • Release git-bitmap v0.0.1, git-hash v0.9.0, git-features v0.19.0, git-index v0.1.0, safety bump 9 crates (4624725)
    • Merge branch ‘sync-db-draft’ (7d2e20c)
    • Thanks clippy (4ca9e07)
    • Thanks clippy (7dd2313)
    • Release git-actor v0.7.0, git-config v0.1.9, git-object v0.16.0, git-diff v0.12.0, git-traverse v0.11.0, git-pack v0.15.0, git-odb v0.25.0, git-packetline v0.12.2, git-transport v0.14.0, git-protocol v0.13.0, git-ref v0.10.0, git-repository v0.13.0, cargo-smart-release v0.7.0 (d3f9227)
    • Release git-features v0.18.0, git-actor v0.7.0, git-config v0.1.9, git-object v0.16.0, git-diff v0.12.0, git-traverse v0.11.0, git-pack v0.15.0, git-odb v0.25.0, git-packetline v0.12.2, git-transport v0.14.0, git-protocol v0.13.0, git-ref v0.10.0, git-repository v0.13.0, cargo-smart-release v0.7.0, safety bump 12 crates (acd3737)
    • Adjust changelogs prior to release (ec38950)
    • Release git-config v0.1.8, git-object v0.15.1, git-diff v0.11.1, git-traverse v0.10.1, git-pack v0.14.0, git-odb v0.24.0, git-packetline v0.12.1, git-transport v0.13.1, git-protocol v0.12.1, git-ref v0.9.1, git-repository v0.12.0, cargo-smart-release v0.6.0 (f606fa9)
    • Better changelog descriptions. (f69b2d6)
    • Adjusting changelogs prior to release of git-config v0.1.8, git-object v0.15.1, git-diff v0.11.1, git-traverse v0.10.1, git-pack v0.14.0, git-odb v0.24.0, git-packetline v0.12.1, git-transport v0.13.1, git-protocol v0.12.1, git-ref v0.9.1, git-repository v0.12.0, cargo-smart-release v0.6.0, safety bump 5 crates (39b40c8)
    • Release git-hash v0.8.0, git-features v0.17.0, git-actor v0.6.0, git-object v0.15.0, git-diff v0.11.0, git-traverse v0.10.0, git-pack v0.13.0, git-odb v0.23.0, git-packetline v0.12.0, git-transport v0.13.0, git-protocol v0.12.0, git-ref v0.9.0, git-repository v0.11.0, git-commitgraph v0.6.0, gitoxide-core v0.12.0, gitoxide v0.10.0, cargo-smart-release v0.5.0, safety bump 16 crates (0e02953)
    • Release git-hash v0.7.0, git-features v0.16.5, git-actor v0.5.3, git-config v0.1.7, git-validate v0.5.3, git-object v0.14.1, git-diff v0.10.0, git-tempfile v1.0.3, git-lock v1.0.1, git-traverse v0.9.0, git-pack v0.12.0, git-odb v0.22.0, git-packetline v0.11.0, git-url v0.3.4, git-transport v0.12.0, git-protocol v0.11.0, git-ref v0.8.0, git-repository v0.10.0, cargo-smart-release v0.4.0 (59ffbd9)
    • Adjusting changelogs prior to release of git-hash v0.7.0, git-features v0.16.5, git-actor v0.5.3, git-validate v0.5.3, git-object v0.14.1, git-diff v0.10.0, git-tempfile v1.0.3, git-lock v1.0.1, git-traverse v0.9.0, git-pack v0.12.0, git-odb v0.22.0, git-packetline v0.11.0, git-url v0.3.4, git-transport v0.12.0, git-protocol v0.11.0, git-ref v0.8.0, git-repository v0.10.0, cargo-smart-release v0.4.0, safety bump 3 crates (a474395)
    • Make fmt, but now it picked up some parts that usually don't get altered… (01f7b72)
    • Update changelogs just for fun (21541b3)
    • Merge branch ‘changelog-generation’ (bf0106e)
    • Merge branch ‘main’ into changelog-generation (c956f33)
    • Bump git-traverse v0.9.0, safety bump 8 crates (d39fabb)
    • Release git-protocol v0.10.4 (898ee08)
    • Thanks clippy (4701296)
    • Release git-protocol v0.10.3 (aa90f98)
    • Merge branch ‘repository-integration’ (49f5453)
    • Bump git-hash v0.6.0 (6efd90d)
    • Release git-protocol v0.10.2 (54a4400)
    • [various #184] configure docs.rs build features (cc50249)
    • Release git-protocol v0.10.1 (cec8ee3)
    • [protocol #174] fix tests… (cdc16fc)
    • Bump git-protocol v0.10.0 (82d5a0b)
    • Bump git-transport v0.11.0 (1149f1b)
    • Bump git-packetline v0.10.0 (b09f391)
    • [packetline #178] rename PacketLine to PacketLineRef… (d4c16a9)
    • [stability #171] Prime git-tempfile and git-lock for release (01278fe)
    • Merge branch ‘Byron:main’ into main (dc58eca)
    • Upgrade to nom-7 (f0aa3e1)
    • [protocol] prepare release to fix crates-io instalations (83d7423)
    • Bump git-protocol to v0.9.0 as there are breaking changes (b4e3340)
    • Apply nightly rustfmt rules. (5e0edba)
    • Release git-protocol v0.8.1 (b57c339)
    • Release git-transport v0.10.0 (b944278)
    • Release git-packetline v0.9.0 (7ffbd60)
    • Remove dev-dependency cycles by removing their version (c40faca)
    • Bump transport version to 0.10 (f26a3d3)
    • (cargo-release) version 0.8.0 (ad6d7f9)
    • (cargo-release) version 0.7.0 (2ef3106)
    • [transport] A much better name for 'is_stateful() ([f15f1e8`](https://github.com/Byron/gitoxide/commit/f15f1e85fda76eef72c3754d625cf51e3c454eea))
    • [protocol] Make fetch-connection usage explicit (29696f9)
    • (cargo-release) version 0.5.0 (ae02dab)
    • (cargo-release) version 0.16.0 (1231dbd)
    • [protocol RL-#741] Respect delegate configuration when running only ls-refs (65ce8e1)
    • [protocol #145] Unify the previous and previous_result parameters… (96f77c7)
    • Merge pull request #145 from kim/ref-in-want-corrections (8dfc943)
    • [protocol] remove misleading documentation about ref-in-want (9a8f6b5)
    • Clippy on tests and thanks clippy (a77a71c)
    • Thanks clippy (e1964e4)
    • Bump async-trait from 0.1.50 to 0.1.51 (ce0b81e)
    • Bump futures-io from 0.3.15 to 0.3.16 (3c23820)
    • [protocol] Delegate will indicate end-of-operation when fetch is done (928f75a)
    • [protocol] Let ‘fetch()’ only be used via git_protocol::fetch (4bae2f9)
    • Thanks clippy (eccbecb)
    • [protocol] fix build (38aca40)
    • [protocol] Allow both preparation delegate methods to fail (d89393b)
    • [protocol] start trying LsRefsAction::Abort(Box)… (660b9dc)
    • Merge branch ‘negotiate-fallible’ (27c8abe)
    • [protocol] adjust description of fetch::Error to match io::Error sources (23dafc6)
    • [protocol] fallible negotiation (e269a2c)
    • Revert “[ref] Try using BorrowMut to avoid blanket trait impls, but…” (8212536)
    • [ref] Try using BorrowMut to avoid blanket trait impls, but… (4bb9bba)
    • [protocol] only send flush packets in stateful connections (0995c22)
    • [transport] remove Transport::close()… (4268a9b)
    • [ref] rename Action::Close to Action::Cancel… (cac1f6c)
    • [transport] impl Delegate for &mut T: Delegate; refactor fetch() signature (2ded7f9)
    • [transport] implement Transport for &mut T: Transport as well (372fb81)
    • Merge branch ‘ref-in-want’ (f248557)
    • [protocol] refactor (11b2fd1)
    • [protocol] refactor (967946a)
    • [protocol] refactor (8dc425f)
    • [protocol] assure we don't coerce refs into UTF-8 representation (5ceb64d)
    • [protocol] support ref-in-want (b6df400)
    • [transport] tests for extra parameters (fffd926)
    • [protocol] extra_parameters are forwarded from delegate to handshake (03e3db3)
    • [transport] unsupported protocol versions now abort the fetch operation (812aa3b)
    • [transport] flexible version of version support check doesn't actually work :D (2b220f0)
    • [protocol] make refs parsing functionality public (d6da891)
    • [protocol] async-io path handles improved refs parsing (328ab9c)
    • [protocol] first step towards keeping InternalRef internal in blocking-io (6c4ed2d)
    • Refactor (24697bc)
    • [async-client] cleanup Send bounds! (c7dee44)
    • [async-client] refactor (b252932)
    • [async-client] unblock the async delegate in the cheapest possible way… (a3b5d75)
    • Revert “[async-client] a taste of what it means to unblock the delegate” (2ba452f)
    • [async-client] a taste of what it means to unblock the delegate (4d6c10a)
    • [async-client] prepare for unblocking the protocol delegate (796c7d5)
    • [async-client] refactor (0d5b911)
    • Revert “[async-client] Try to bring ‘Send’ back but…” (52eb953)
    • [async-client] Try to bring ‘Send’ back but… (3a06adb)
    • [git-protocol] fix test (e30ea36)
    • [git-protocol] no warnings when building without client (2f30666)
    • [git-protocol] remove compile warnings if no client type is specified… (478a980)
    • Thanks clippy (57106e2)
    • [git-protocol] builds without features work (a1945ff)
    • [git-protocol] async fetch tests work (fe434a5)
    • [git-protocol] fetch tests nearly compile in async (97fb186)
    • [git-protocol] fetch in sync and async… (4776039)
    • [git-protocol] refactor (80379fd)
    • [git-protocol] build should fail if mutually exclusiive features are set (72cf940)
    • Bump maybe-async from 0.2.4 to 0.2.6 (d99a1a8)
    • [git-protocol] fix build (4cce648)
    • [git-protocol] async Delegate (1aa6781)
    • Thanks clippy (0759ade)
    • [git-protocol] refactor (94d7be4)
    • [git-protocol] refactor (990099b)
    • [git-protocol] refactor (d623cf7)
    • [git-protocol] async response (c498557)
    • [git-protocol] refactor (a8dc078)
    • Refactor (2eefe17)
    • [git-protocol] prepare response module for async (08b891b)
    • [git-protocol] fix tests without any feature toggles (1da0b1a)
    • Thanks clippy (91fdfba)
    • [git-protocol] refs now available in async (3a5b2cf)
    • [git-protocol] refactor (abf0b9d)
    • [git-protocol] prepare to translate refs (bf79c91)
    • [git-protocol] no warnings if there is no client feature set (335e831)
    • [git-protocol] fix tests in case there is no client feature set (1ee5518)
    • [git-protocol] refactor (0b4ff16)
    • [git-protocol] refactor (e99a03b)
    • [git-protocol] async capabilities and arguments abstractions (aa3eacb)
    • [git-protocol] now just a dummy async transport impl and… (c7f0b80)
    • [git-protocol] a big step towards getting ‘Arguments’ test into async (5d1c30f)
    • [git-protocol] move everything into blocking_io for later translation… (fa03374)
    • [git-protocol] all blocking fetch tests (0d39b5d)
    • [git-protocol] re-introduce credentials helper code (6a5575f)
    • [git-protocol] separate test configuration for async mode (62a117c)
    • [git-transport] fix git-protocol (0cc9537)
    • [git-protocol] simplify test setup (189ed2c)
    • Refactor (2ba9f91)
    • (cargo-release) version 0.4.0 (866f86f)
    • Switch to latest nom (859e57e)
    • (cargo-release) version 0.15.0 (d69d9fb)
    • Put prodash behind a feature toggle, too (966058d)
    • [git-packetline] refactor (1328c5b)
    • (cargo-release) version 0.6.0 (ec5a54e)
    • [git-packetline] refactor (e5769d1)
    • (cargo-release) version 0.8.0 (ccea4b6)
    • (cargo-release) version 0.9.0 (18f6d01)
    • [git-transport] simplify parsing capabilities from lines (401af09)
    • [git-protocol] separate tests those who need feature toggles (4a49d64)
    • [git-transport] remove default features to force being explicit everywhere (d1b39f8)
    • Fix git-protocol (284f8af)
    • Refactor (1412282)
    • (cargo-release) version 0.7.0 (069184e)
    • (cargo-release) version 0.8.0 (411a05e)
    • (cargo-release) version 0.5.0 (8c4cc3f)
    • Thanks clippy (17258cc)
    • (cargo-release) version 0.14.0 (a760f8c)
    • (cargo-release) version 0.3.0 (e9665c7)
    • (cargo-release) version 0.13.0 (ac2eddb)
    • (cargo-release) version 0.6.0 (8513f0f)
    • (cargo-release) version 0.7.0 (334b7e1)
    • (cargo-release) version 0.12.0 (3b71e7e)
    • (cargo-release) version 0.2.0 (4ec09f4)
    • (cargo-release) version 0.5.0 (3cc4a57)
    • (cargo-release) version 0.6.0 (50fb6f2)
    • Thanks clippy (0fc239c)
    • Thanks clippy (749ceba)
    • (cargo-release) version 0.11.0 (1aa1f5e)
    • (cargo-release) version 0.4.1 (6244fb4)
    • Finish docs for git-protocol crate (598f700)
    • Revise trait documentation of git-protocol (5271128)
    • Docs for response in git-protocol (487de13)
    • More docs for git-protocol (bca0cbd)
    • Docs for fetch::refs (6a97a3e)
    • Docs for git credentials helper utilities (eb6bb6e)
    • First pieces of docs for git-protocol (12d8a83)
    • Thanks clippy (343ab9a)
    • (cargo-release) version 0.5.0 (28df5e9)
    • All crates use git-hash::Kind and its types, sometimes through git-object (124c171)
    • Use git-hash in git-features (5b307e0)
    • (cargo-release) version 0.3.0 (e60dbe6)
    • (cargo-release) version 0.4.0 (32aefc0)
    • (cargo-release) version 0.4.0 (72eaece)
    • (cargo-release) version 0.9.0 (a89fdb9)
    • (cargo-release) version 0.5.0 (fc7d600)
    • (cargo-release) version 0.2.0 (a476a46)
    • (cargo-release) version 0.3.0 (d19ee35)
    • (cargo-release) version 0.3.0 (eade7d1)
    • (cargo-release) version 0.8.0 (47c00c2)
    • Cargo clippy Rust 1.48 (475a68c)
    • (cargo-release) version 0.7.0 (7fa7bae)
    • Thanks clippy (b9e0a87)
    • Remove dash in all repository links (98c1360)
    • Merge from main. (b59bd5e)
    • Refactor (7c3c80a)
    • (cargo-release) version 0.6.0 (9ef184e)
    • (cargo-release) version 0.1.1 (bb38c6b)
    • Support V2 shallow-info section (6679c91)
    • Tests for V2 shallow section parsing (5bf58ab)
    • Support for the ‘deepen-relative’ argument (b86fed6)
    • V1 parsing of shallow and unshallow lines… (8bcf535)
    • Remove unused fixtures (6ae69f5)
    • Fix wants/haves separator handling for stateful V1 (1629575)
    • Make really clear that V2 is stateless no matter what the transport supports :D (c296845)
    • Assure the first ‘want’ in V1 is always first (e729ec8)
    • Properly handle statelessness in V2 protocol (1b49f1e)
    • Add some samples for deepen clones (61bc41a)
    • Switch to prodash 10 and safe a lot of trait bounds in the process (e2fb1d9)
    • (cargo-release) version 0.4.0 (0d7b60e)
    • (cargo-release) version 0.2.0 (779e9d0)
    • (cargo-release) version 0.2.0 (da830de)
    • (cargo-release) version 0.5.0 (82b7313)
    • [clone] Assure we don't hang due to unprocessed headers when peeking lines! (d9ced27)
    • [clone] more correct handling of ‘no-done’/done when sending wants/haves… (50f4516)
    • [clone] Don't try to explicitly close the connection… (17200b3)
    • [clone] Fix encoding of V1 capabilities in first want (b68a5c5)
    • [clone] When unpacking peeled refs, use the object that refers to the tag… (fe8bb39)
    • [clone] none the wiser - it really looks like everything is alright… (3b8d613)
    • [clone] it looks like in order to figure out the issue, it needs tests higher up… (edf1540)
    • [clone] Don‘t send V2 capabilities that don’t have a value… (9c9a4ee)
    • [clone] Handle remote progress name prefixing (more) correctly (51d4d15)
    • [clone] This actually works: first MVP of retrieving packs via clone (c06d819)
    • Use git attributes to prevent crlf conversion of fixtures on windows (80ca8b2)
    • [clone] Support for reading multi-step negoritaions, but… (507d342)
    • [clone] refactor (ded46fd)
    • [clone] support for progress that can handle writing pack files (46e0055)
    • [clone] leave aborting the negotiation loop in the hands of the delegate (ea83ce7)
    • [clone] sideband-all support (ecc8e09)
    • [clone] Actually pass pack file to the delegate (94c5e62)
    • [clone] Response parsing up to (optional) pack (24064c7)
    • [clone] FAIL: try to model pack reading using ownership… (4ee14e3)
    • [clone] properly handle V2 response parsing (0d7d768)
    • Refactor (f2c31ec)
    • Refactor (fab9f99)
    • [clone] Provide a handle to the packfile, if it is present in the response (fcb4cc1)
    • [ref-ls] A way to abort on multiple delimiters; first tests work (8d44912)
    • Refactor (feec5be)
    • [ref-ls] Allow multiple delimiters at the same time (cfae63a)
    • [ref-ls] basic V2 acknowledgement and packfile parsing, but… (549f404)
    • Thanks clippy (ac88eef)
    • [ref-ls] parse all V1 acknowledgements, without duplication (f7c1580)
    • [ref-ls] first stab at V1 acknowledgement parsing (1d21cd4)
    • [ref-ls] It would be practical to simply have access to the line provider… (5fba787)
    • Thanks clippy (27f30df)
    • [ref-ls] support for line peeking in packet line readers (0c0c575)
    • [ref-ls] Let's make Acks copy, because owned::Id is as well (1f9cc44)
    • Refactor (935d5fe)
    • [ref-ls] first sketch of V1 tests for result parsing (ack + pack) (fd16a5f)
    • [ref-ls] tests for stateless V1/V2 (d34afc6)
    • [ref-ls] first step towards parsing negotiation result (51ecf7e)
    • Refactor (61e9812)
    • Thanks clippy (6b1294a)
    • [ref-ls] Argument tests for fetches (50cd260)
    • [ref-ls] first argument tests for clone (83490ef)
    • [ref-ls] Also add ‘haves’ in V2; some more assertions (3e6bfb1)
    • [ref-ls] Do feature assertions to not have to support old servers (9980ff9)
    • [ref-ls] don't do anything on drop (9f18d9b)
    • [ref-ls] A step towards getting the negotiation right, really need tests (abb56d8)
    • [ref-ls] Transport layer knows whether it's stateful or not (22c3640)
    • [ref-ls] Also re-send V1 features in each request, independently of statefulness for now (f8669d6)
    • [ref-ls] potentially fix ‘is-done’ logic (f9e338f)
    • [ref-ls] Sketch of sending arguments in V1 & V2 (e1d27b6)
    • [ref-ls] first step towards supporting negotiation (27b6d2d)
    • [ref-ls] probably all it takes to handle all capabilities of fetch arguments (d956ecc)
    • [ref-ls] first sketch of argument utility to help creating wants/haves (b0b0166)
    • [ref-ls] fix feature validation in V2 (eb387d2)
    • Update tasks (079fc02)
    • [ref-ls] Always send a flush before closing the connection (918f19f)
    • [ref-ls] Make credentials helper truly work (7f3c3a7)
    • [ref-ls] And it even doesn't work if it is the very same transport (4ba50fe)
    • [clone] support automatic downgrade to protocol version 1 (4cf3643)
    • [clone] basic progress for fetch in protocol (1925d02)
    • Refactor (aa7e8b1)
    • Refactor (b97507e)
    • [clone] update README, improve delegate docs (dc7908f)
    • [clone] test ls-remote V2 (0907771)
    • Thanks clippy (baf0b2c)
    • [clone] more tests for fetch features and arguments (a946861)
    • [clone] features for V1 fetch (5b24a55)
    • [clone] assert on ref-prefix for ls-refs command (70347a5)
    • Thanks clippy (d55cd56)
    • Refactor (f02232d)
    • [clone] Getting there with feature handling for ls-refs (27c5adc)
    • [clone] Remove intermediary mutable Capabilities implementation (f59344a)
    • Refactor (5ea42ba)
    • [clone] first step towards better organizing features/capabilities/argument names (7d45f3a)
    • Dependency update (dea0028)
    • [clone] first sign of somethign working: ls-remote (df58fa1)
    • Refactor; thanks clippy (03c3d17)
    • Refactor (25122f2)
    • [clone] V2 ref parsing (455fa0f)
    • [clone] A better way to set the agent in V2 invocations (325d3a2)
    • [clone] Make the actual ls-refs call (898cb8b)
    • [clone] sketch of delegating simple commands along with arg/feature verification (c2ebc48)
    • Refactor (a6bcdc4)
    • Ignore keep-alive packages in case of ‘sideband-all’ (2e77b86)
    • Refactor (ad0b2e9)
    • Thanks clippy (8b1ea29)
    • [clone] apply another mild workaround to be able to use ‘transport.close()’ (ea636ae)
    • [clone] remove workaround (55cf167)
    • [clone] more safety checks (6f5a9f3)
    • Thanks clippy (423458e)
    • Refactor (f29ea65)
    • [clone] proper parsing of V1 refs (d262307)
    • [clone] A little more ref V1 parsing (4bc7842)
    • [clone] preparation of test for proper ref parsing (V1) (85cd580)
    • Refactor (99247f4)
    • Refactor (c985370)
    • [clone] symref parsing from capabilities (8c2ff64)
    • [clone] A step closer to parsing symrefs correctly (250a340)
    • [clone] attempt to make refs more accessible… (fa1112c)
    • Refactor (c138059)
    • [clone] Prevent accidental leakage by transforming back to the ‘right’ type (2d469c6)
    • Thanks clippy (9afa7f9)
    • [clone] a better workaround for the ‘drop scope’ issue (3ccf32b)
    • [clone] First step of workarounding rusts drop rules (6b47923)
    • [clone] update tracking ticket information (650c452)
    • [clone] add Rustc issue to see if this is just my bad (ccb9b53)
    • Thanks clippy (fd6f9e5)
    • [clone] Workaround for the drop-issue (43c6159)
    • [clone] first attempt at adding authentication logic, but… (a36d14a)
    • [clone] first rough sketch of (mutable) capabailities in the protocol side (13f7ecb)
    • Refactor (a567b24)
    • Refactor (88ecda1)
    • [clone] frame for first ‘fetch’ tests (2da70f6)
    • Refactor (89aabde)
    • Refactor (51f6142)
    • [clone] support for git-credentials helper (a6546da)
    • Refactor (cf0e45a)
    • [clone] decoding of credential message replies (1c2f56d)
    • [clone] encode message for git credentials helper (143549e)
    • [clone] sketch for identity handling (b23f470)
    • [clone] put remaining remote progress parsing code into protocol (e03e0e5)
    • Refactor - decouple protocol from packetline (dc98db2)
    • [clone] move packet-line code into own crate (879af67)
    • [clone] move packet-lint into transport layer (c0dd831)
    • [clone] link up lean plumbing command with gitoxide-core: pack-receive (5ea49c8)
    • [url] basic frame and first failing test (60aacf0)
    • [protocol] properly implement remote progress reporting (a81954a)
    • Refactor (66e9cd1)
    • Thanks clippy (7f6e290)
    • [protocol] prepare passing most of remote progress on to prodash… (b8a34e5)
    • Refactor (df8ebdc)
    • Refactor (2ea3288)
    • Refactor (2102cab)
    • [protocol] remote::Progress can now parse the usual progress (b0e5601)
    • [protocol] first steps towards parsing remote progress (c3d0e7a)
    • [protocol] even starting to parse remote progress by hand is painful… (d68db3c)
    • Less ambiguous name for ‘index-from-pack’: ‘pack-index-from-data’ (386673c)
    • [protocol] handle errors as well; transmit progress (first part) (c484398)
    • [protocol] first successful test with pack reading (ad1e8bf)
    • [protocol] first stab at decoding sidebands in Read (51fe596)
    • [protocol] allow Reader delimiter to be configured (5a01596)
    • Refactor (78f27d8)
    • Revert “[protocol] an alternative version with external buffer” (157d810)
    • Revert “[protocol] But external buffers also don't help at all” (579a697)
    • [protocol] But external buffers also don't help at all (8e711df)
    • [protocol] an alternative version with external buffer (a862d22)
    • [protocol] a struggle - putting buffers in Read adapters = bad idea (e257426)
    • [protocol] FAIL: keep referenced PacketLine for minimal copy (7e4d1f3)
    • [protocol] sketch of Read impl for pack line iterator (fe3b050)
    • Refactor (c81caa3)
    • Revert “[protocol] FAIL: attempt to add an actual Iterator impl for packet lines” (2989781)
    • [protocol] FAIL: attempt to add an actual Iterator impl for packet lines (a6e4cb1)
    • Refactor (20b10c5)
    • [protocol] thanks clippy (10b9017)
    • [protocol] tests for the reader (86d1a40)
    • [protocol] A chance for the reader to actually work (d6aebed)
    • Refactor (8ebdcbd)
    • [protocol] FAIL: finally the reader compiles with the ‘slice split technique’… (58543cb)
    • [protocol] FAIL3: giving up - it's quite impossible to do that without ‘bytes’ (047d67c)
    • [protocol] reader FAIL: wherever the loop moves, it will not borrowcheck (cb154f2)
    • [protocol] FAIL2: lifetime issues with loop (c2ff070)
    • [protocol] decode-band can fail on malformed input (0f468f9)
    • Refactor (ed1f364)
    • [protocol] better handling of text-lines (7ad1db0)
    • [protocol] attempt to implement a streaming pack line reader (FAIL :D) (cc45cec)
    • [protocol] add cargo-diet assertions (831b758)
    • Refactor (73e24c9)
    • [protocol] side-band channel encoding and decoding (9b4fb3e)
    • [protocol] suppot for V2 special lines (4e46719)
    • Encode and decode errors (3f4fd90)
    • Decode ERR lines as actual errors (1f58568)
    • More tests (c34d88b)
    • The first succeeding tests for streaming decoding :D (7ea25c5)
    • First stab at implementing streaming decoding of packet line… (843c6fb)
    • Cargo fmt (60cd21b)
    • Allow dual-licensing with Apache 2.0 (ea353eb)
    • Refactor (7e3f67d)
    • Packet line encoding with flush support (e924a59)
    • First bunch of tasks I see after studying parts of the protocol docs (9bd97ba)

0.26.2 (2023-01-10)

A maintenance release without user-facing changes.

0.26.1 (2023-01-09)

A maintenance release without user-facing changes.

0.26.0 (2022-12-30)

New Features

  • display the underlying permission denied error as source when failing handshake due to authentication.

0.25.1 (2022-12-22)

A maintenance release without user-facing changes.

0.25.0 (2022-12-19)

New Features

  • fetch::Arguments::use_include_tag() allows to signal include-tag. One can also check for its availability using fetch::Arguments::can_use_include_tag().

    Further there was a bugfix that assumes V1 capabilities are correctly interpreted to support include-tag.

  • due to more specific errors one can differentiate if remote authentication failed repeatedly.

  • some errors support is_spurious() to tell if retrying is possible.

Bug Fixes

  • don't pass ‘include-tag’ as argument by default. This flag always has to be added by the caller based on configuration.

  • don't post packfile-uris capability unless we are able to make use of it. Turns out that this option can be rejected by a server that advertises it, so definitely needs more work to make it work.

  • Parse refs from bytes, not from String. The latter can cause issues around illformed UTF-8 which wouldn't bother git either.

    This comes at the expense of not parsing line by line anymore, but instead reading as fast as possible and parsing afterwards.

    Performance wise I think it doesn't matter, but it will cause more memory to be used. If this ever becomes a problem, for example during pushes where we are stuck with V1, we can consider implementing our own streaming approach that works with packet lines instead - they are just not exposed here even though they could.

  • don't enforce V2 as protocol, but smoothly downgrade like git does. For backward compatibility the shared handshake implementation allows the transport to control which protocol versions it wants to support to allow optimizing for one special case, namely to prevent it to read all V1 refs on old servers but abort instead, closing the connection without delay.

    Now we leave this feature for custom transports (who usually come with custom servers) and instead support fallbacks to other protocols if the server demands it.

0.24.0 (2022-11-21)

New Features (BREAKING)

  • upgrade edition to 2021 in most crates. MSRV for this is 1.56, and we are now at 1.60 so should be compatible. This isn‘t more than a patch release as it should break nobody who is adhering to the MSRV, but let’s be careful and mark it breaking.

    Note that gix-features and gix-pack are still on edition 2018 as they make use of a workaround to support (safe) mutable access to non-overlapping entries in a slice which doesn't work anymore in edition 2021.

0.23.0 (2022-11-17)

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 independently.

  • 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.

0.22.0 (2022-11-06)

Changed (BREAKING)

  • fetch::Ref::unpack() returns Option<oid>. That way the caller has to be aware of the possibility of an unborn branch (probably the only unborn branch) on the remote.

New Features (BREAKING)

  • Support for unborn ls-refs capability if server supports it. We can also parse it, adding yet another variant to fetch::Refs.

0.21.0 (2022-10-10)

Changed

  • turn prepare_ls_refs in fetch::refs() into FnOnce.

New Features

  • Allow defaulting fetch::handshake::Outcome. This is useful in conjunction with std::mem::take().
  • fetch::Arguments::is_empty() to help decide if arguments should be sent at all. Furthermore, the Debug trait was added.
  • make some private methods public to give callers more flexibility. This allows to implement the fetch-negotiation part oneself and break free from constraints of the delegate.
  • add client::fetch_pack() allowing to fetch a pack after a handshake.

Bug Fixes

  • support keepalive packets. Keepalive packets are side-band only empty datalines that should just be ignored. This is now happening, allowing longer git operations to work as they will send keepalive packets every 5 seconds, and previously we would choke on it.

    Note that empty datalines are never send otherwise, making it a previously unused marker that can safely be skipped.

  • Link up Io error as source for error chaining; add Debug to client::fetch::Response

Reverted

  • client::fetch_pack() isn‘t worth it after all. The overhead required to make it work isn’t worth the logic we are enabling. Instead, it's OK to re-implement custom logic on the consumer side based on this one.

0.20.0 (2022-09-20)

Changed (BREAKING)

  • fetch::Ref::unpack() returns &BStr instead of &BString as ref name.
  • fetch::Ref::unpack() now returns the peeled object as well.
  • rename fetch::Ref::path to fetch::Ref::full_ref_name. Previously it was inaccurately named and described due to an insufficient understanding of the ref database.
  • upgrade bstr to 1.0.1

0.19.1 (2022-08-28)

Maintenance release without user-facing changes.

New Features

  • helper::main to easily create credential helper implementations

0.19.0 (2022-08-24)

Chore

  • uniformize deny attributes

New Features

  • provide a function to gracefully shut down a fetch transport
  • use docsrs feature in code to show what is feature-gated automatically on docs.rs
  • pass --cfg docsrs when compiling for https://docs.rs
  • re-export maybe_async That way, API users can also provide dynamically sync or async APIs.

0.18.1 (2022-08-17)

A maintenance release without user facing changes.

Changed (BREAKING)

  • replace quick-error with this-error

  • adapt to changes in gix-url and use BString to represent URLs. They can contain paths, which is why String can't represent a URL losslessly.

    For HTTP urls these are ultimately UTF-8 strings though.

New Features

  • add fetch::refs() method to invoke ls-refs for V2 and parse the result
  • factor fetch handshake into fetch::handshake() function

0.18.0 (2022-07-22)

This is a maintenance release with no functional changes.

0.17.0 (2022-06-13)

A maintenance release without user-facing changes.

0.16.0 (2022-05-18)

New Features (BREAKING)

  • use gix-credentials in gix-protocol

0.15.0 (2022-04-03)

New Features

  • in-manifest and in-lib feature documentation

0.14.0 (2022-01-23)

A maintenance release with no relevant changes.

0.13.0 (2021-11-29)

A maintenance release, triggered by putting too many adjustments into a single commit.

0.12.1 (2021-11-16)

A maintenance release triggered by changes to gix-pack and changelog rewrites.

v0.12.0 (2021-10-19)

A maintenance release to properly dealing with previously breaking changes in gix-hash.

v0.11.0 (2021-10-15)

Bug Fixes

  • ‘(null)’ symref targets are turned into direct refs instead

    because that‘s what ‘git’ would do if it would care enough. On the client side this means one has to deal with detached heads and it’s obvious that these are detached. It‘s not clear anymore why this is the case, and probably it’s good to hide it as the current git behaviour is accidental and may change in future, and do so in a way we predict.

    There is the possibility that git would abort the entire fetch/upload-pack operation, but that's already handled correctly by our implementation as well as we understand ERR messages in packet lines.

v0.10.4 (2021-09-10)

v0.10.3 (2021-09-07)

v0.10.2 (2021-08-29)

v0.10.1 (2021-08-27)

  • instruct docs.rs which features to use for more useful documentation

v0.10.0 (2021-08-27)

  • Various minor updates of pre-release dependencies

v0.9.0 (2021-08-17)

BREAKING

  • Add fifth argument to fetch(…)

v0.8.1 (2021-08-13)

v0.8.0 (2021-08-10)

v0.7.0 (2021-05-09)

v0.6.0 (2021-04-08)

v0.5.0 (2021-03-26)

v0.4.1 (2021-01-05)

v0.4.0 (2020-12-16)

v0.3.0 (2020-12-15)

v0.2.0 (2020-12-15)

v0.1.1 (2020-09-14)

v0.1.0 (2020-09-12)

v0.0.0 (2020-08-13)