1539 lines · 117.5 KB · Markdown
RawDownload

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

Commit Statistics

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

Commit Details

view details
  • Uncategorized
    • prepare changelogs prior to release (e4648f8)
    • Merge branch 'version2021' (0e4462d)
    • upgrade edition to 2021 in most crates. (3d8fa8f)

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

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

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

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

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

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

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

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

Commit Statistics

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

Commit Details

view details
  • Uncategorized
    • 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)

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.

Commit Statistics

  • 13 commits contributed to the release over the course of 23 calendar days.
  • 27 days passed between releases.
  • 2 commits were understood as conventional.
  • 1 unique issue was worked on: #450

Thanks Clippy

Clippy helped 2 times to make code idiomatic.

Commit Details

view details
  • #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)
  • Uncategorized
    • 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)

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.

Commit Statistics

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

Commit Details

view details
  • #450
    • 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)
  • Uncategorized
    • 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)

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

Commit Statistics

  • 21 commits contributed to the release over the course of 22 calendar days.
  • 22 days passed between releases.
  • 4 commits were understood as conventional.
  • 2 unique issues were worked on: #450, #470

Commit Details

view details
  • #450
    • 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)
  • #470
    • update changelogs prior to release (caa7a1b)
  • Uncategorized
    • 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)

0.19.1 (2022-08-28)

Maintenance release without user-facing changes.

New Features

  • helper::main to easily create credential helper implementations

Commit Statistics

  • 12 commits contributed to the release over the course of 4 calendar days.
  • 4 days passed between releases.
  • 1 commit was understood as conventional.
  • 2 unique issues were worked on: #450, #XXX

Commit Details

view details
  • #450
    • 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)
  • #XXX
    • prepare changelogs prior to release (8c0bca3)
  • Uncategorized
    • 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)

0.19.0 (2022-08-24)

Chore

  • uniformize deny attributes

New Features

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

Commit Statistics

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

Commit Details

view details
  • #450
    • provide a function to gracefully shut donw a fetch transport (5ba9e1d)
    • re-export maybe_async (d6b4878)
  • Uncategorized
    • 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)

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

New Features

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

Commit Statistics

  • 21 commits contributed to the release over the course of 26 calendar days.
  • 26 days passed between releases.
  • 4 commits were understood as conventional.
  • 1 unique issue was worked on: #450

Commit Details

view details
  • #450
    • 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)
  • Uncategorized
    • 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)

0.18.0 (2022-07-22)

This is a maintenance release with no functional changes.

Commit Statistics

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

Commit Details

view details
  • Uncategorized
    • 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)

0.17.0 (2022-06-13)

A maintenance release without user-facing changes.

Commit Statistics

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

Commit Details

view details
  • Uncategorized
    • 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)

0.16.0 (2022-05-18)

Lines 1–500 of 1539.