summaryrefslogtreecommitdiffstats
path: root/vendor/gix-protocol
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-30 18:31:44 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-30 18:31:44 +0000
commitc23a457e72abe608715ac76f076f47dc42af07a5 (patch)
tree2772049aaf84b5c9d0ed12ec8d86812f7a7904b6 /vendor/gix-protocol
parentReleasing progress-linux version 1.73.0+dfsg1-1~progress7.99u1. (diff)
downloadrustc-c23a457e72abe608715ac76f076f47dc42af07a5.tar.xz
rustc-c23a457e72abe608715ac76f076f47dc42af07a5.zip
Merging upstream version 1.74.1+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/gix-protocol')
-rw-r--r--vendor/gix-protocol/.cargo-checksum.json2
-rw-r--r--vendor/gix-protocol/CHANGELOG.md269
-rw-r--r--vendor/gix-protocol/Cargo.toml30
-rw-r--r--vendor/gix-protocol/src/command/mod.rs4
-rw-r--r--vendor/gix-protocol/src/fetch/arguments/blocking_io.rs4
-rw-r--r--vendor/gix-protocol/src/fetch/arguments/mod.rs38
-rw-r--r--vendor/gix-protocol/src/fetch/delegate.rs16
-rw-r--r--vendor/gix-protocol/src/fetch/tests.rs5
-rw-r--r--vendor/gix-protocol/src/fetch_fn.rs8
-rw-r--r--vendor/gix-protocol/src/handshake/function.rs8
-rw-r--r--vendor/gix-protocol/src/handshake/mod.rs8
-rw-r--r--vendor/gix-protocol/src/handshake/refs/mod.rs15
-rw-r--r--vendor/gix-protocol/src/handshake/refs/shared.rs99
-rw-r--r--vendor/gix-protocol/src/handshake/refs/tests.rs11
-rw-r--r--vendor/gix-protocol/src/ls_refs.rs2
-rw-r--r--vendor/gix-protocol/src/remote_progress.rs57
16 files changed, 458 insertions, 118 deletions
diff --git a/vendor/gix-protocol/.cargo-checksum.json b/vendor/gix-protocol/.cargo-checksum.json
index bbbd8dc97..c86c48660 100644
--- a/vendor/gix-protocol/.cargo-checksum.json
+++ b/vendor/gix-protocol/.cargo-checksum.json
@@ -1 +1 @@
-{"files":{"CHANGELOG.md":"e1b8982036c7fc04fce72d2a6657463d075be974d129442547ddb0f4ce7032bb","Cargo.toml":"e1eb4bac30258a140f1093eb1f7a9eed667f9e701608c3257a8e4fe1a216f570","LICENSE-APACHE":"cb4780590812826851ba250f90bed0ed19506ec98f6865a0e2e20bbf62391ff9","LICENSE-MIT":"49df47913ab2beafe8dc45607877ae64198bf0eee64aaad3e82ed9e4d27424e8","src/command/mod.rs":"692abd0c6bef256a68047740fdda77cf27719e76cda879fb43b4b709c3494b14","src/command/tests.rs":"42f5c98a4a8cf1f58c4c97c0f6c61ecf5e6f8380032a8452e8dfd8f093e7a975","src/fetch/arguments/async_io.rs":"5cc55867527012cd27fec718d06d468c075f3f5e9569e389b5d8fbcd9814ca5c","src/fetch/arguments/blocking_io.rs":"913e1071bc589746fd17e42553b6e93bdc7187d36f87d579e1851e44569f77e4","src/fetch/arguments/mod.rs":"5deff5aa39249ed140d30c34c65c77758b122f29341fe451ae722123864aebf3","src/fetch/delegate.rs":"4597719ff3597a934b98b318ab2f8079985aae7ffd04c426c089c7bb6c921e52","src/fetch/error.rs":"63d305d921765056e179a5c19cfe1075319eaaa661877f4cefdc4dc247f3bb44","src/fetch/handshake.rs":"374a0b8394a362cd7fab30aaed2a9fa5a1f047c590da4ee7cfd9c432adc4755a","src/fetch/mod.rs":"94db03392ab0e62d5c33fc02dc6889b8d65c304637d7a9d9b27104f81424c460","src/fetch/response/async_io.rs":"3164a586423029c80bb40e6c9932df068a71b2cdbc0d567d1d463599771b6418","src/fetch/response/blocking_io.rs":"a74308b8f9221ce44898ed4f1d5d6b86ef9cfac80ca1529a2001414e848ca0f2","src/fetch/response/mod.rs":"7fcaac06b56309d0e2eb99be2cebbb755599b95e14c6b8de46c1e8a5a38b1e91","src/fetch/tests.rs":"5c74672d00f254c965b1bcbe7167b8cf024f72e86a9d6c14d57f1ceea394ad6a","src/fetch_fn.rs":"9baa02339dc9d38109a566665cb67d95db36c52a1ef029a0807846f459a0928d","src/handshake/function.rs":"d53c48b8ccd45c219f149b572b4cc4c9241a7c0a858694a4d0912fdbe67d591b","src/handshake/mod.rs":"49a018f60620ccb7e198bebdef8026996c52aa9374fe5dfd6306605bf6e0a13a","src/handshake/refs/async_io.rs":"1f8143928517f5dcdbeb01b4f98774cf17afe6e37db75558752599ba7b88fd20","src/handshake/refs/blocking_io.rs":"9475538f6b90e46174438a08f89b0cc5ba938644ae409d5c32a5d9fd3e023862","src/handshake/refs/mod.rs":"2bd46c247a6b61095942992a7f036a6c0ba235aa11bab6bece92995dc31f48f6","src/handshake/refs/shared.rs":"ab92275101ac597f06d9e09c1192566a707ad730d330ba385e19bd5c499b15ae","src/handshake/refs/tests.rs":"9e7707faafb08d3e2cfb83efe7ee1bee52504ec9ee633eb168732bc18d2936ce","src/lib.rs":"37d70654d2b4bca30f53681b62888bd0b69cc143ee3e5239089842065f1c0b52","src/ls_refs.rs":"8e9003cd2619c64cadf5a2f7b94eb2bb0374898279a1af52b3eeab8167cb678d","src/remote_progress.rs":"cbcb30386c67c86b42f10af863edb72fdc920367aa320bcaf2c54190bd464f43","src/util.rs":"d83861fd81167f09ba0e93278703f827b201299e1991382f6274b6ba8abce6cd"},"package":"92a17058b45c461f0847528c5fb6ee6e76115e026979eb2d2202f98ee94f6c24"} \ No newline at end of file
+{"files":{"CHANGELOG.md":"8e4d151deb3e9305a3544c28872eaa680fa34c816f059f093dcf99c6f316dbab","Cargo.toml":"9b452b1e1940c2adf3d83ae5e6b0ff4868905621e7424751cc3ba235f6b00635","LICENSE-APACHE":"cb4780590812826851ba250f90bed0ed19506ec98f6865a0e2e20bbf62391ff9","LICENSE-MIT":"49df47913ab2beafe8dc45607877ae64198bf0eee64aaad3e82ed9e4d27424e8","src/command/mod.rs":"cfd960eabb45461502c66a1eb520b504e582d9fbdc965ab8b32cc41e014d73b8","src/command/tests.rs":"42f5c98a4a8cf1f58c4c97c0f6c61ecf5e6f8380032a8452e8dfd8f093e7a975","src/fetch/arguments/async_io.rs":"5cc55867527012cd27fec718d06d468c075f3f5e9569e389b5d8fbcd9814ca5c","src/fetch/arguments/blocking_io.rs":"3536611fcfe4958a953314875ae330572a1a5e3160e5a979527ce58bf4465f37","src/fetch/arguments/mod.rs":"7763c6f9352b8bffd28b750da6ea0650215603509aa725b63bda6c896f497c34","src/fetch/delegate.rs":"4ef365ebc3db6beb77fc78d2a877d98d50577afd67d9a357e5365c99f4c324d6","src/fetch/error.rs":"63d305d921765056e179a5c19cfe1075319eaaa661877f4cefdc4dc247f3bb44","src/fetch/handshake.rs":"374a0b8394a362cd7fab30aaed2a9fa5a1f047c590da4ee7cfd9c432adc4755a","src/fetch/mod.rs":"94db03392ab0e62d5c33fc02dc6889b8d65c304637d7a9d9b27104f81424c460","src/fetch/response/async_io.rs":"3164a586423029c80bb40e6c9932df068a71b2cdbc0d567d1d463599771b6418","src/fetch/response/blocking_io.rs":"a74308b8f9221ce44898ed4f1d5d6b86ef9cfac80ca1529a2001414e848ca0f2","src/fetch/response/mod.rs":"7fcaac06b56309d0e2eb99be2cebbb755599b95e14c6b8de46c1e8a5a38b1e91","src/fetch/tests.rs":"12d20117c4744afdcc1ae18f80b9d1ace624e2b33ff704229b3d755913ff3970","src/fetch_fn.rs":"d8a2879b81604eef717cfe32853134280762736c0da672bb34aa8b84748b7084","src/handshake/function.rs":"ce0675aa16493404a8dd2d47ad7200faa96e3e10bd6ade0cb24641b99fc03914","src/handshake/mod.rs":"4f77d9898ef461bdad78adb889fe1abb6a8eff6c720931a7d82f881b01e5eb62","src/handshake/refs/async_io.rs":"1f8143928517f5dcdbeb01b4f98774cf17afe6e37db75558752599ba7b88fd20","src/handshake/refs/blocking_io.rs":"9475538f6b90e46174438a08f89b0cc5ba938644ae409d5c32a5d9fd3e023862","src/handshake/refs/mod.rs":"eeeabd63d239d70a4454d50c70e691f945c774be4bd2d1a9b057666232a96132","src/handshake/refs/shared.rs":"cccf9f168e88de9e04430fada9d699aa8847305758fe04fca8b8503d52b86706","src/handshake/refs/tests.rs":"834c9f783a35b75f5f93727312c9436db1cc91627758f71ac293049a71de5cd9","src/lib.rs":"37d70654d2b4bca30f53681b62888bd0b69cc143ee3e5239089842065f1c0b52","src/ls_refs.rs":"7ce35ad174d57f939f79b2a3ba5b7e8cf040bac2fb4b1a9044a4350f458623a4","src/remote_progress.rs":"2cdbeca25dc66612f8d39eb2be27de6da1b984caaee32390375005f72abe7687","src/util.rs":"d83861fd81167f09ba0e93278703f827b201299e1991382f6274b6ba8abce6cd"},"package":"cc7b700dc20cc9be8a5130a1fd7e10c34117ffa7068431c8c24d963f0a2e0c9b"} \ No newline at end of file
diff --git a/vendor/gix-protocol/CHANGELOG.md b/vendor/gix-protocol/CHANGELOG.md
index e2309d1b8..1aea1ffb8 100644
--- a/vendor/gix-protocol/CHANGELOG.md
+++ b/vendor/gix-protocol/CHANGELOG.md
@@ -5,6 +5,272 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## 0.40.0 (2023-09-24)
+
+A maintenance release without user-facing changes.
+
+### Commit Statistics
+
+<csr-read-only-do-not-edit/>
+
+ - 1 commit contributed to the release.
+ - 15 days passed between releases.
+ - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
+ - 0 issues like '(#ID)' were seen in commit messages
+
+### Commit Details
+
+<csr-read-only-do-not-edit/>
+
+<details><summary>view details</summary>
+
+ * **Uncategorized**
+ - Prepare changelogs prior to release ([`8a60d5b`](https://github.com/Byron/gitoxide/commit/8a60d5b80877c213c3b646d3061e8a33e0e433ec))
+</details>
+
+## 0.39.0 (2023-09-08)
+
+<csr-id-ed327f6163f54756e58c20f86a563a97efb256ca/>
+
+### Chore (BREAKING)
+
+ - <csr-id-ed327f6163f54756e58c20f86a563a97efb256ca/> 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)
+
+ - <csr-id-24dd870919ba444aa8099c63a78ea120d47ec28e/> use `prodash::Count` to indicate that nothing more than counting is performed, in place of `prodash::Progress`
+
+### Bug Fixes (BREAKING)
+
+ - <csr-id-072ee32f693a31161cd6a843da6582d13efbb20b/> use `dyn` trait where possible.
+ This reduces compile time due to avoiding duplication.
+
+### Commit Statistics
+
+<csr-read-only-do-not-edit/>
+
+ - 19 commits contributed to the release over the course of 17 calendar days.
+ - 17 days passed between releases.
+ - 3 commits were understood as [conventional](https://www.conventionalcommits.org).
+ - 0 issues like '(#ID)' were seen in commit messages
+
+### Commit Details
+
+<csr-read-only-do-not-edit/>
+
+<details><summary>view details</summary>
+
+ * **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`](https://github.com/Byron/gitoxide/commit/1ff30641b8724efd6699d8bef5c71d28454e98b9))
+ - 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`](https://github.com/Byron/gitoxide/commit/8bd045676bb2cdc02624ab93e73ff8518064ca38))
+ - Prepare changelogs for release ([`375db06`](https://github.com/Byron/gitoxide/commit/375db06a8442378c3f7a922fae38e2a6694d9d04))
+ - Merge branch `dyn`ification ([`f658fcc`](https://github.com/Byron/gitoxide/commit/f658fcc52dc2200ae34ca53dc10be97fb9012057))
+ - Use `dyn` trait where possible. ([`072ee32`](https://github.com/Byron/gitoxide/commit/072ee32f693a31161cd6a843da6582d13efbb20b))
+ - Use `prodash::Count` to indicate that nothing more than counting is performed, in place of `prodash::Progress` ([`24dd870`](https://github.com/Byron/gitoxide/commit/24dd870919ba444aa8099c63a78ea120d47ec28e))
+ - Merge pull request #1009 from epage/proto ([`16cac47`](https://github.com/Byron/gitoxide/commit/16cac4724347401d7dde2c8567b2f26420bf7216))
+ - Don't bother with error tracking that is ignored ([`444f970`](https://github.com/Byron/gitoxide/commit/444f970e70e8d24c6593293fec70b3a6f7f2d5bf))
+ - Upgrade gix-protocol to winnow 0.5 ([`237657e`](https://github.com/Byron/gitoxide/commit/237657ee59a093a65b3157e637f28282290212bb))
+ - Prep for winnow 0.5 upgrade for gix-protocol ([`8c80dba`](https://github.com/Byron/gitoxide/commit/8c80dba1836394b4d1995580f60e1443a386bdac))
+ - Resolve winnow deprecations in gix-protocol ([`b213889`](https://github.com/Byron/gitoxide/commit/b213889db2697d27d70b110c863bdfdf71bc0f4f))
+ - Upgrade gix-protocol to winnow 0.4 ([`659ebe9`](https://github.com/Byron/gitoxide/commit/659ebe9cf3569f40c0d81eb02b802516c428287a))
+ - Prep for winnow 0.4 upgrade for gix-protocol ([`8609aec`](https://github.com/Byron/gitoxide/commit/8609aec804a7191b9c5a074595ef16a08e7d0be4))
+ - Resolve winnow deprecations in gix-protocol ([`b46fe9c`](https://github.com/Byron/gitoxide/commit/b46fe9c15f6af4351c6ea7a443f0c79bd0c77969))
+ - Migrate gix-protocol to winnow ([`0e8edef`](https://github.com/Byron/gitoxide/commit/0e8edef9882eea72a70b8782d8cf6edc8185b097))
+ - Update to the latest `prodash` ([`ed327f6`](https://github.com/Byron/gitoxide/commit/ed327f6163f54756e58c20f86a563a97efb256ca))
+ - Merge branch 'adjustments-for-cargo' ([`b7560a2`](https://github.com/Byron/gitoxide/commit/b7560a2445b62f888bf5aa2ba4c5a47ae037cb23))
+ - Release gix-date v0.7.4, gix-index v0.23.0, safety bump 5 crates ([`3be2b1c`](https://github.com/Byron/gitoxide/commit/3be2b1ccfe30eeae45711c64b88efc522a2b51b7))
+ - Merge branch 'gix-submodule' ([`363ee77`](https://github.com/Byron/gitoxide/commit/363ee77400805f473c9ad66eadad9214e7ab66f4))
+</details>
+
+## 0.38.0 (2023-08-22)
+
+<csr-id-229bd4899213f749a7cc124aa2b82a1368fba40f/>
+
+### Chore
+
+ - <csr-id-229bd4899213f749a7cc124aa2b82a1368fba40f/> don't call crate 'WIP' in manifest anymore.
+
+### Commit Statistics
+
+<csr-read-only-do-not-edit/>
+
+ - 5 commits contributed to the release over the course of 15 calendar days.
+ - 19 days passed between releases.
+ - 1 commit was understood as [conventional](https://www.conventionalcommits.org).
+ - 0 issues like '(#ID)' were seen in commit messages
+
+### Commit Details
+
+<csr-read-only-do-not-edit/>
+
+<details><summary>view details</summary>
+
+ * **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`](https://github.com/Byron/gitoxide/commit/6c62e748240ac0980fc23fdf30f8477dea8b9bc3))
+ - 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`](https://github.com/Byron/gitoxide/commit/30b27615047692d3ced1b2d9c2ac15a80f79fbee))
+ - Update changelogs prior to release ([`f23ea88`](https://github.com/Byron/gitoxide/commit/f23ea8828f2d9ba7559973daca388c9591bcc5fc))
+ - Don't call crate 'WIP' in manifest anymore. ([`229bd48`](https://github.com/Byron/gitoxide/commit/229bd4899213f749a7cc124aa2b82a1368fba40f))
+ - 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`](https://github.com/Byron/gitoxide/commit/4604f83ef238dc07c85aaeae097399b67f3cfd0c))
+</details>
+
+## 0.37.0 (2023-08-02)
+
+### New Features
+
+ - <csr-id-d1f9c63f8a79dcb00766d94edda80ed9add724ea/> 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)
+
+ - <csr-id-0de7117492fb64c4f2b4f5ee7482813d57b57d40/> `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
+
+<csr-read-only-do-not-edit/>
+
+ - 6 commits contributed to the release over the course of 1 calendar day.
+ - 10 days passed between releases.
+ - 2 commits were understood as [conventional](https://www.conventionalcommits.org).
+ - 0 issues like '(#ID)' were seen in commit messages
+
+### Commit Details
+
+<csr-read-only-do-not-edit/>
+
+<details><summary>view details</summary>
+
+ * **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`](https://github.com/Byron/gitoxide/commit/231ac1c6ad5ca9a84dbeb0dee14bfbf2fef1ae1e))
+ - Prepare additional changelogs ([`db63815`](https://github.com/Byron/gitoxide/commit/db6381522395a0de047118e81df5cd3cbeb862b9))
+ - Prepare changelogs ([`e4d2890`](https://github.com/Byron/gitoxide/commit/e4d2890a85bf60e9cdb4016dddfab3c4dccbe75e))
+ - Merge branch 'fixes-and-improvements' ([`f8b1f55`](https://github.com/Byron/gitoxide/commit/f8b1f553371f25b1bea6bce7cbb2ff1f01194856))
+ - Add `fetch::Arguments::add_feature()` for unconditional additions of arguments that are supposed to be features. ([`d1f9c63`](https://github.com/Byron/gitoxide/commit/d1f9c63f8a79dcb00766d94edda80ed9add724ea))
+ - `handshake::Ref::Symbolic` now has a `tag` field. ([`0de7117`](https://github.com/Byron/gitoxide/commit/0de7117492fb64c4f2b4f5ee7482813d57b57d40))
+</details>
+
+## 0.36.1 (2023-07-22)
+
+A maintenance release without user-facing changes.
+
+### Commit Statistics
+
+<csr-read-only-do-not-edit/>
+
+ - 7 commits contributed to the release over the course of 1 calendar day.
+ - 3 days passed between releases.
+ - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
+ - 0 issues like '(#ID)' were seen in commit messages
+
+### Commit Details
+
+<csr-read-only-do-not-edit/>
+
+<details><summary>view details</summary>
+
+ * **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`](https://github.com/Byron/gitoxide/commit/00629710dffeb10fda340665530353703cf5d129))
+ - 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`](https://github.com/Byron/gitoxide/commit/107a64e734580ad9e2c4142db96394529d8072df))
+ - 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`](https://github.com/Byron/gitoxide/commit/16295b58e2581d2e8b8b762816f52baabe871c75))
+ - Prepare more changelogs ([`c4cc5f2`](https://github.com/Byron/gitoxide/commit/c4cc5f261d29f712a101033a18293a97a9d4ae85))
+ - 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`](https://github.com/Byron/gitoxide/commit/5cb3589b74fc5376e02cbfe151e71344e1c417fe))
+ - Update changelogs prior to release ([`2fc66b5`](https://github.com/Byron/gitoxide/commit/2fc66b55097ed494b72d1af939ba5561f71fde97))
+ - Update license field following SPDX 2.1 license expression standard ([`9064ea3`](https://github.com/Byron/gitoxide/commit/9064ea31fae4dc59a56bdd3a06c0ddc990ee689e))
+</details>
+
+## 0.36.0 (2023-07-19)
+
+A maintenance release without user-facing changes.
+
+### Commit Statistics
+
+<csr-read-only-do-not-edit/>
+
+ - 4 commits contributed to the release.
+ - 19 days passed between releases.
+ - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
+ - 0 issues like '(#ID)' were seen in commit messages
+
+### Commit Details
+
+<csr-read-only-do-not-edit/>
+
+<details><summary>view details</summary>
+
+ * **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`](https://github.com/Byron/gitoxide/commit/4aca8c2ae2ec588fb65ec4faa0c07c19d219569f))
+ - 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`](https://github.com/Byron/gitoxide/commit/68ae3ff9d642ec56f088a6a682a073dc16f4e8ca))
+ - Adjust package versions (by cargo-smart-release) ([`c70e54f`](https://github.com/Byron/gitoxide/commit/c70e54f163c312c87753a506eeaad462e8579bfb))
+ - Prepare changelogs prior to release ([`e4dded0`](https://github.com/Byron/gitoxide/commit/e4dded05138562f9737a7dcfb60570c55769486d))
+</details>
+
+## 0.35.0 (2023-06-29)
+
+A maintenance release without user-facing changes.
+
+### Commit Statistics
+
+<csr-read-only-do-not-edit/>
+
+ - 2 commits contributed to the release.
+ - 6 days passed between releases.
+ - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
+ - 0 issues like '(#ID)' were seen in commit messages
+
+### Commit Details
+
+<csr-read-only-do-not-edit/>
+
+<details><summary>view details</summary>
+
+ * **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`](https://github.com/Byron/gitoxide/commit/27e8c18db5a9a21843381c116a8ed6d9f681b3f8))
+ - Prepare changelogs prior to release ([`00f96fb`](https://github.com/Byron/gitoxide/commit/00f96fb3110a8f81a1bd0d74c757c15b8773c6f6))
+</details>
+
+## 0.34.0 (2023-06-22)
+
+<csr-id-bcad5c22049d56a25ef69d6c7a3344e78f9a1d4d/>
+
+### Chore
+
+ - <csr-id-bcad5c22049d56a25ef69d6c7a3344e78f9a1d4d/> Add `clippy::redundant-closure-for-method-calls` lint
+
+### Changed (BREAKING)
+
+ - <csr-id-9f8fa221b0e15923de5fc015cf6abb3dd578167e/> use `SecondsSinceUnixEpoch` type where needed.
+ Previously we used `usize` which isn't correct on 32 bit systems.
+
+### Commit Statistics
+
+<csr-read-only-do-not-edit/>
+
+ - 8 commits contributed to the release over the course of 11 calendar days.
+ - 12 days passed between releases.
+ - 2 commits were understood as [conventional](https://www.conventionalcommits.org).
+ - 0 issues like '(#ID)' were seen in commit messages
+
+### Commit Details
+
+<csr-read-only-do-not-edit/>
+
+<details><summary>view details</summary>
+
+ * **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`](https://github.com/Byron/gitoxide/commit/ea9f9424e777f10da0e33bb9ffbbefd01c4c5a74))
+ - Prepare changelogs prior to release ([`18b0a37`](https://github.com/Byron/gitoxide/commit/18b0a371941aa2d4d62512437d5daa351ba99ffd))
+ - Merge branch 'corpus' ([`aa16c8c`](https://github.com/Byron/gitoxide/commit/aa16c8ce91452a3e3063cf1cf0240b6014c4743f))
+ - Change MSRV to 1.65 ([`4f635fc`](https://github.com/Byron/gitoxide/commit/4f635fc4429350bae2582d25de86429969d28f30))
+ - Merge branch 'help-874-redundant-closures' ([`fe59956`](https://github.com/Byron/gitoxide/commit/fe59956ad667303a923d7cfd9ffd72283df41d78))
+ - Add `clippy::redundant-closure-for-method-calls` lint ([`bcad5c2`](https://github.com/Byron/gitoxide/commit/bcad5c22049d56a25ef69d6c7a3344e78f9a1d4d))
+ - Merge branch 'future-dates' ([`8d2e6a9`](https://github.com/Byron/gitoxide/commit/8d2e6a91ac92a033e9e3daad5cffa90263075536))
+ - Use `SecondsSinceUnixEpoch` type where needed. ([`9f8fa22`](https://github.com/Byron/gitoxide/commit/9f8fa221b0e15923de5fc015cf6abb3dd578167e))
+</details>
+
## 0.33.2 (2023-06-10)
### New Features
@@ -18,7 +284,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
<csr-read-only-do-not-edit/>
- - 2 commits contributed to the release.
+ - 3 commits contributed to the release.
- 2 days passed between releases.
- 1 commit was understood as [conventional](https://www.conventionalcommits.org).
- 0 issues like '(#ID)' were seen in commit messages
@@ -30,6 +296,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
<details><summary>view details</summary>
* **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`](https://github.com/Byron/gitoxide/commit/2560a2cc3e1d8c60cd812e15696fa4761d036e19))
- Prepare changelogs prior to release ([`298f3d7`](https://github.com/Byron/gitoxide/commit/298f3d7359c5b183314d8c584e45dcdd559d88b3))
- Support `capabilities^{}` syntax to announce caps in empty repos under V1 ([`c8e8b9f`](https://github.com/Byron/gitoxide/commit/c8e8b9fc55486215bda4c380d3c84a6c6ae5f602))
</details>
diff --git a/vendor/gix-protocol/Cargo.toml b/vendor/gix-protocol/Cargo.toml
index a0c498aba..038e3192d 100644
--- a/vendor/gix-protocol/Cargo.toml
+++ b/vendor/gix-protocol/Cargo.toml
@@ -11,9 +11,9 @@
[package]
edition = "2021"
-rust-version = "1.64"
+rust-version = "1.65"
name = "gix-protocol"
-version = "0.33.2"
+version = "0.40.0"
authors = ["Sebastian Thiel <sebastian.thiel@icloud.com>"]
include = [
"src/**/*",
@@ -21,8 +21,8 @@ include = [
"CHANGELOG.md",
"!**/tests/**/*",
]
-description = "A WIP crate of the gitoxide project for implementing git protocols"
-license = "MIT/Apache-2.0"
+description = "A crate of the gitoxide project for implementing git protocols"
+license = "MIT OR Apache-2.0"
repository = "https://github.com/Byron/gitoxide"
[package.metadata.docs.rs]
@@ -77,26 +77,24 @@ version = "1.12.0"
optional = true
[dependencies.gix-credentials]
-version = "^0.15.0"
+version = "^0.20.0"
+
+[dependencies.gix-date]
+version = "^0.8.0"
[dependencies.gix-features]
-version = "^0.30.0"
+version = "^0.35.0"
features = ["progress"]
[dependencies.gix-hash]
-version = "^0.11.2"
+version = "^0.13.0"
[dependencies.gix-transport]
-version = "^0.32.0"
+version = "^0.37.0"
[dependencies.maybe-async]
version = "0.2.6"
-[dependencies.nom]
-version = "7"
-features = ["std"]
-default-features = false
-
[dependencies.serde]
version = "1.0.114"
features = ["derive"]
@@ -106,12 +104,16 @@ default-features = false
[dependencies.thiserror]
version = "1.0.32"
+[dependencies.winnow]
+version = "0.5.14"
+features = ["simd"]
+
[dev-dependencies.async-std]
version = "1.9.0"
features = ["attributes"]
[dev-dependencies.gix-packetline]
-version = "^0.16.2"
+version = "^0.16.6"
[features]
async-client = [
diff --git a/vendor/gix-protocol/src/command/mod.rs b/vendor/gix-protocol/src/command/mod.rs
index 1216ba625..9fcc48e87 100644
--- a/vendor/gix-protocol/src/command/mod.rs
+++ b/vendor/gix-protocol/src/command/mod.rs
@@ -140,7 +140,7 @@ mod with_io {
.iter()
.find_map(|c| {
if c.name() == Command::Fetch.as_str() {
- c.values().map(|v| v.map(|f| f.to_owned()).collect())
+ c.values().map(|v| v.map(ToOwned::to_owned).collect())
} else {
None
}
@@ -189,7 +189,7 @@ mod with_io {
.iter()
.find_map(|c| {
if c.name() == self.as_str().as_bytes().as_bstr() {
- c.values().map(|v| v.map(|f| f.to_string()).collect::<Vec<_>>())
+ c.values().map(|v| v.map(ToString::to_string).collect::<Vec<_>>())
} else {
None
}
diff --git a/vendor/gix-protocol/src/fetch/arguments/blocking_io.rs b/vendor/gix-protocol/src/fetch/arguments/blocking_io.rs
index 571792148..c946d46e1 100644
--- a/vendor/gix-protocol/src/fetch/arguments/blocking_io.rs
+++ b/vendor/gix-protocol/src/fetch/arguments/blocking_io.rs
@@ -45,9 +45,7 @@ impl Arguments {
}
transport.invoke(
Command::Fetch.as_str(),
- self.features
- .iter()
- .filter_map(|(k, v)| v.as_ref().map(|v| (*k, Some(v.as_ref())))),
+ self.features.iter().filter(|(_, v)| v.is_some()).cloned(),
Some(std::mem::replace(&mut self.args, retained_state).into_iter()),
)
}
diff --git a/vendor/gix-protocol/src/fetch/arguments/mod.rs b/vendor/gix-protocol/src/fetch/arguments/mod.rs
index 1adf993bb..50145bb15 100644
--- a/vendor/gix-protocol/src/fetch/arguments/mod.rs
+++ b/vendor/gix-protocol/src/fetch/arguments/mod.rs
@@ -129,11 +129,11 @@ impl Arguments {
self.prefixed("deepen ", depth);
}
}
- /// Deepen the commit history to include all commits from now to `seconds_since_unix_epoch`.
- pub fn deepen_since(&mut self, seconds_since_unix_epoch: usize) {
+ /// Deepen the commit history to include all commits from now to (and including) `seconds` as passed since UNIX epoch.
+ pub fn deepen_since(&mut self, seconds: gix_date::SecondsSinceUnixEpoch) {
debug_assert!(self.deepen_since, "'deepen-since' feature required");
if self.deepen_since {
- self.prefixed("deepen-since ", seconds_since_unix_epoch);
+ self.prefixed("deepen-since ", seconds);
}
}
/// Deepen the commit history in a relative instead of absolute fashion.
@@ -165,20 +165,30 @@ impl Arguments {
pub fn use_include_tag(&mut self) {
debug_assert!(self.supports_include_tag, "'include-tag' feature required");
if self.supports_include_tag {
- match self.version {
- gix_transport::Protocol::V0 | gix_transport::Protocol::V1 => {
- let features = self
- .features_for_first_want
- .as_mut()
- .expect("call use_include_tag before want()");
- features.push("include-tag".into())
- }
- gix_transport::Protocol::V2 => {
- self.args.push("include-tag".into());
- }
+ self.add_feature("include-tag");
+ }
+ }
+
+ /// Add the given `feature`, unconditionally.
+ ///
+ /// Note that sending an unknown or unsupported feature may cause the remote to terminate
+ /// the connection. Use this method if you know what you are doing *and* there is no specialized
+ /// method for this, e.g. [`Self::use_include_tag()`].
+ pub fn add_feature(&mut self, feature: &str) {
+ match self.version {
+ gix_transport::Protocol::V0 | gix_transport::Protocol::V1 => {
+ let features = self
+ .features_for_first_want
+ .as_mut()
+ .expect("call add_feature before first want()");
+ features.push(feature.into())
+ }
+ gix_transport::Protocol::V2 => {
+ self.args.push(feature.into());
}
}
}
+
fn prefixed(&mut self, prefix: &str, value: impl fmt::Display) {
self.args.push(format!("{prefix}{value}").into());
}
diff --git a/vendor/gix-protocol/src/fetch/delegate.rs b/vendor/gix-protocol/src/fetch/delegate.rs
index e90022d41..e6f187402 100644
--- a/vendor/gix-protocol/src/fetch/delegate.rs
+++ b/vendor/gix-protocol/src/fetch/delegate.rs
@@ -183,7 +183,7 @@ mod blocking_io {
ops::DerefMut,
};
- use gix_features::progress::Progress;
+ use gix_features::progress::NestedProgress;
use crate::{
fetch::{DelegateBlocking, Response},
@@ -207,7 +207,7 @@ mod blocking_io {
fn receive_pack(
&mut self,
input: impl io::BufRead,
- progress: impl Progress,
+ progress: impl NestedProgress + 'static,
refs: &[Ref],
previous_response: &Response,
) -> io::Result<()>;
@@ -217,7 +217,7 @@ mod blocking_io {
fn receive_pack(
&mut self,
input: impl BufRead,
- progress: impl Progress,
+ progress: impl NestedProgress + 'static,
refs: &[Ref],
previous_response: &Response,
) -> io::Result<()> {
@@ -229,7 +229,7 @@ mod blocking_io {
fn receive_pack(
&mut self,
input: impl BufRead,
- progress: impl Progress,
+ progress: impl NestedProgress + 'static,
refs: &[Ref],
previous_response: &Response,
) -> io::Result<()> {
@@ -246,7 +246,7 @@ mod async_io {
use async_trait::async_trait;
use futures_io::AsyncBufRead;
- use gix_features::progress::Progress;
+ use gix_features::progress::NestedProgress;
use crate::{
fetch::{DelegateBlocking, Response},
@@ -272,7 +272,7 @@ mod async_io {
async fn receive_pack(
&mut self,
input: impl AsyncBufRead + Unpin + 'async_trait,
- progress: impl Progress,
+ progress: impl NestedProgress + 'static,
refs: &[Ref],
previous_response: &Response,
) -> io::Result<()>;
@@ -282,7 +282,7 @@ mod async_io {
async fn receive_pack(
&mut self,
input: impl AsyncBufRead + Unpin + 'async_trait,
- progress: impl Progress,
+ progress: impl NestedProgress + 'static,
refs: &[Ref],
previous_response: &Response,
) -> io::Result<()> {
@@ -297,7 +297,7 @@ mod async_io {
async fn receive_pack(
&mut self,
input: impl AsyncBufRead + Unpin + 'async_trait,
- progress: impl Progress,
+ progress: impl NestedProgress + 'static,
refs: &[Ref],
previous_response: &Response,
) -> io::Result<()> {
diff --git a/vendor/gix-protocol/src/fetch/tests.rs b/vendor/gix-protocol/src/fetch/tests.rs
index 80dc752dd..93cf6e8db 100644
--- a/vendor/gix-protocol/src/fetch/tests.rs
+++ b/vendor/gix-protocol/src/fetch/tests.rs
@@ -319,6 +319,7 @@ mod arguments {
assert!(arguments.is_stateless(true), "V2 is stateless…");
assert!(arguments.is_stateless(false), "…in all cases");
+ arguments.add_feature("no-progress");
arguments.deepen(1);
arguments.deepen_relative();
arguments.want(id("7b333369de1221f9bfbbe03a3a13e9a09bc1c907"));
@@ -329,6 +330,7 @@ mod arguments {
b"0012command=fetch
0001000ethin-pack
000eofs-delta
+0010no-progress
000ddeepen 1
0014deepen-relative
0032want 7b333369de1221f9bfbbe03a3a13e9a09bc1c907
@@ -347,6 +349,7 @@ mod arguments {
let mut t = transport(&mut out, *is_stateful);
let mut arguments = arguments_v2(Some("shallow"));
+ arguments.add_feature("no-progress");
arguments.deepen(1);
arguments.deepen_since(12345);
arguments.shallow(id("7b333369de1221f9bfbbe03a3a13e9a09bc1c9ff"));
@@ -362,6 +365,7 @@ mod arguments {
b"0012command=fetch
0001000ethin-pack
000eofs-delta
+0010no-progress
000ddeepen 1
0017deepen-since 12345
0035shallow 7b333369de1221f9bfbbe03a3a13e9a09bc1c9ff
@@ -371,6 +375,7 @@ mod arguments {
00000012command=fetch
0001000ethin-pack
000eofs-delta
+0010no-progress
000ddeepen 1
0017deepen-since 12345
0035shallow 7b333369de1221f9bfbbe03a3a13e9a09bc1c9ff
diff --git a/vendor/gix-protocol/src/fetch_fn.rs b/vendor/gix-protocol/src/fetch_fn.rs
index 64d457711..b350976ef 100644
--- a/vendor/gix-protocol/src/fetch_fn.rs
+++ b/vendor/gix-protocol/src/fetch_fn.rs
@@ -1,6 +1,6 @@
use std::borrow::Cow;
-use gix_features::progress::Progress;
+use gix_features::progress::NestedProgress;
use gix_transport::client;
use maybe_async::maybe_async;
@@ -59,7 +59,7 @@ where
F: FnMut(credentials::helper::Action) -> credentials::protocol::Result,
D: Delegate,
T: client::Transport,
- P: Progress,
+ P: NestedProgress + 'static,
P::SubProgress: 'static,
{
let crate::handshake::Outcome {
@@ -136,7 +136,7 @@ where
.await?;
previous_response = if response.has_pack() {
progress.step();
- progress.set_name("receiving pack");
+ progress.set_name("receiving pack".into());
if !sideband_all {
setup_remote_progress(&mut progress, &mut reader);
}
@@ -159,7 +159,7 @@ where
fn setup_remote_progress<P>(progress: &mut P, reader: &mut Box<dyn gix_transport::client::ExtendedBufRead + Unpin + '_>)
where
- P: Progress,
+ P: NestedProgress,
P::SubProgress: 'static,
{
reader.set_progress_handler(Some(Box::new({
diff --git a/vendor/gix-protocol/src/handshake/function.rs b/vendor/gix-protocol/src/handshake/function.rs
index 6324fb3e1..9e75c18d0 100644
--- a/vendor/gix-protocol/src/handshake/function.rs
+++ b/vendor/gix-protocol/src/handshake/function.rs
@@ -24,12 +24,12 @@ where
{
let (server_protocol_version, refs, capabilities) = {
progress.init(None, progress::steps());
- progress.set_name("handshake");
+ progress.set_name("handshake".into());
progress.step();
let extra_parameters: Vec<_> = extra_parameters
.iter()
- .map(|(k, v)| (k.as_str(), v.as_ref().map(|s| s.as_str())))
+ .map(|(k, v)| (k.as_str(), v.as_deref()))
.collect();
let supported_versions: Vec<_> = transport.supported_protocol_versions().into();
@@ -43,13 +43,13 @@ where
Err(client::Error::Io(ref err)) if err.kind() == std::io::ErrorKind::PermissionDenied => {
drop(result); // needed to workaround this: https://github.com/rust-lang/rust/issues/76149
let url = transport.to_url().into_owned();
- progress.set_name("authentication");
+ progress.set_name("authentication".into());
let credentials::protocol::Outcome { identity, next } =
authenticate(credentials::helper::Action::get_for_url(url.clone()))?
.ok_or(Error::EmptyCredentials)?;
transport.set_identity(identity)?;
progress.step();
- progress.set_name("handshake (authenticated)");
+ progress.set_name("handshake (authenticated)".into());
match transport.handshake(service, &extra_parameters).await {
Ok(v) => {
authenticate(next.store())?;
diff --git a/vendor/gix-protocol/src/handshake/mod.rs b/vendor/gix-protocol/src/handshake/mod.rs
index 6d70ed145..28243e96d 100644
--- a/vendor/gix-protocol/src/handshake/mod.rs
+++ b/vendor/gix-protocol/src/handshake/mod.rs
@@ -21,7 +21,7 @@ pub enum Ref {
/// The hash of the object the ref points to.
object: gix_hash::ObjectId,
},
- /// A symbolic ref pointing to `target` ref, which in turn points to an `object`
+ /// A symbolic ref pointing to `target` ref, which in turn, ultimately after possibly following `tag`, points to an `object`
Symbolic {
/// The name at which the symbolic ref is located, like `HEAD`.
full_ref_name: BString,
@@ -31,7 +31,11 @@ pub enum Ref {
///
/// [#205]: https://github.com/Byron/gitoxide/issues/205
target: BString,
- /// The hash of the object the `target` ref points to.
+ /// The hash of the annotated tag the ref points to, if present.
+ ///
+ /// Note that this field is also `None` if `full_ref_name` is a lightweight tag.
+ tag: Option<gix_hash::ObjectId>,
+ /// The hash of the object the `target` ref ultimately points to.
object: gix_hash::ObjectId,
},
/// A ref is unborn on the remote and just points to the initial, unborn branch, as is the case in a newly initialized repository
diff --git a/vendor/gix-protocol/src/handshake/refs/mod.rs b/vendor/gix-protocol/src/handshake/refs/mod.rs
index 889842e4c..39c6c85a9 100644
--- a/vendor/gix-protocol/src/handshake/refs/mod.rs
+++ b/vendor/gix-protocol/src/handshake/refs/mod.rs
@@ -38,10 +38,17 @@ impl Ref {
/// If `unborn`, the first object id will be the null oid.
pub fn unpack(&self) -> (&BStr, Option<&gix_hash::oid>, Option<&gix_hash::oid>) {
match self {
- Ref::Direct { full_ref_name, object }
- | Ref::Symbolic {
- full_ref_name, object, ..
- } => (full_ref_name.as_ref(), Some(object), None),
+ Ref::Direct { full_ref_name, object } => (full_ref_name.as_ref(), Some(object), None),
+ Ref::Symbolic {
+ full_ref_name,
+ tag,
+ object,
+ ..
+ } => (
+ full_ref_name.as_ref(),
+ Some(tag.as_deref().unwrap_or(object)),
+ tag.as_deref().map(|_| object.as_ref()),
+ ),
Ref::Peeled {
full_ref_name,
tag: object,
diff --git a/vendor/gix-protocol/src/handshake/refs/shared.rs b/vendor/gix-protocol/src/handshake/refs/shared.rs
index 046a2a1b1..45aefe68b 100644
--- a/vendor/gix-protocol/src/handshake/refs/shared.rs
+++ b/vendor/gix-protocol/src/handshake/refs/shared.rs
@@ -8,20 +8,33 @@ impl From<InternalRef> for Ref {
InternalRef::Symbolic {
path,
target: Some(target),
+ tag,
object,
} => Ref::Symbolic {
full_ref_name: path,
target,
+ tag,
object,
},
InternalRef::Symbolic {
path,
target: None,
+ tag: None,
object,
} => Ref::Direct {
full_ref_name: path,
object,
},
+ InternalRef::Symbolic {
+ path,
+ target: None,
+ tag: Some(tag),
+ object,
+ } => Ref::Peeled {
+ full_ref_name: path,
+ tag,
+ object,
+ },
InternalRef::Peeled { path, tag, object } => Ref::Peeled {
full_ref_name: path,
tag,
@@ -56,6 +69,7 @@ pub(crate) enum InternalRef {
///
/// The latter is more of an edge case, please [this issue][#205] for details.
target: Option<BString>,
+ tag: Option<gix_hash::ObjectId>,
object: gix_hash::ObjectId,
},
/// extracted from V1 capabilities, which contain some important symbolic refs along with their targets
@@ -155,6 +169,7 @@ pub(in crate::handshake::refs) fn parse_v1(
Some(position) => match out_refs.swap_remove(position) {
InternalRef::SymbolicForLookup { path: _, target } => out_refs.push(InternalRef::Symbolic {
path: path.into(),
+ tag: None, // TODO: figure out how annotated tags work here.
object,
target,
}),
@@ -172,7 +187,7 @@ pub(in crate::handshake::refs) fn parse_v1(
pub(in crate::handshake::refs) fn parse_v2(line: &BStr) -> Result<Ref, Error> {
let trimmed = line.trim_end();
- let mut tokens = trimmed.splitn(3, |b| *b == b' ');
+ let mut tokens = trimmed.splitn(4, |b| *b == b' ');
match (tokens.next(), tokens.next()) {
(Some(hex_hash), Some(path)) => {
let id = if hex_hash == b"unborn" {
@@ -183,7 +198,9 @@ pub(in crate::handshake::refs) fn parse_v2(line: &BStr) -> Result<Ref, Error> {
if path.is_empty() {
return Err(Error::MalformedV2RefLine(trimmed.to_owned().into()));
}
- Ok(if let Some(attribute) = tokens.next() {
+ let mut symref_target = None;
+ let mut peeled = None;
+ for attribute in tokens.by_ref().take(2) {
let mut tokens = attribute.splitn(2, |b| *b == b':');
match (tokens.next(), tokens.next()) {
(Some(attribute), Some(value)) => {
@@ -191,32 +208,12 @@ pub(in crate::handshake::refs) fn parse_v2(line: &BStr) -> Result<Ref, Error> {
return Err(Error::MalformedV2RefLine(trimmed.to_owned().into()));
}
match attribute {
- b"peeled" => Ref::Peeled {
- full_ref_name: path.into(),
- object: gix_hash::ObjectId::from_hex(value.as_bytes())?,
- tag: id.ok_or(Error::InvariantViolation {
- message: "got 'unborn' as tag target",
- })?,
- },
- b"symref-target" => match value {
- b"(null)" => Ref::Direct {
- full_ref_name: path.into(),
- object: id.ok_or(Error::InvariantViolation {
- message: "got 'unborn' while (null) was a symref target",
- })?,
- },
- name => match id {
- Some(id) => Ref::Symbolic {
- full_ref_name: path.into(),
- object: id,
- target: name.into(),
- },
- None => Ref::Unborn {
- full_ref_name: path.into(),
- target: name.into(),
- },
- },
- },
+ b"peeled" => {
+ peeled = Some(gix_hash::ObjectId::from_hex(value.as_bytes())?);
+ }
+ b"symref-target" => {
+ symref_target = Some(value);
+ }
_ => {
return Err(Error::UnknownAttribute {
attribute: attribute.to_owned().into(),
@@ -227,13 +224,53 @@ pub(in crate::handshake::refs) fn parse_v2(line: &BStr) -> Result<Ref, Error> {
}
_ => return Err(Error::MalformedV2RefLine(trimmed.to_owned().into())),
}
- } else {
- Ref::Direct {
+ }
+ if tokens.next().is_some() {
+ return Err(Error::MalformedV2RefLine(trimmed.to_owned().into()));
+ }
+ Ok(match (symref_target, peeled) {
+ (Some(target_name), peeled) => match target_name {
+ b"(null)" => match peeled {
+ None => Ref::Direct {
+ full_ref_name: path.into(),
+ object: id.ok_or(Error::InvariantViolation {
+ message: "got 'unborn' while (null) was a symref target",
+ })?,
+ },
+ Some(peeled) => Ref::Peeled {
+ full_ref_name: path.into(),
+ object: peeled,
+ tag: id.ok_or(Error::InvariantViolation {
+ message: "got 'unborn' while (null) was a symref target",
+ })?,
+ },
+ },
+ name => match id {
+ Some(id) => Ref::Symbolic {
+ full_ref_name: path.into(),
+ tag: peeled.map(|_| id),
+ object: peeled.unwrap_or(id),
+ target: name.into(),
+ },
+ None => Ref::Unborn {
+ full_ref_name: path.into(),
+ target: name.into(),
+ },
+ },
+ },
+ (None, Some(peeled)) => Ref::Peeled {
+ full_ref_name: path.into(),
+ object: peeled,
+ tag: id.ok_or(Error::InvariantViolation {
+ message: "got 'unborn' as tag target",
+ })?,
+ },
+ (None, None) => Ref::Direct {
object: id.ok_or(Error::InvariantViolation {
message: "got 'unborn' as object name of direct reference",
})?,
full_ref_name: path.into(),
- }
+ },
})
}
_ => Err(Error::MalformedV2RefLine(trimmed.to_owned().into())),
diff --git a/vendor/gix-protocol/src/handshake/refs/tests.rs b/vendor/gix-protocol/src/handshake/refs/tests.rs
index 7d995da5c..3a6af8d2f 100644
--- a/vendor/gix-protocol/src/handshake/refs/tests.rs
+++ b/vendor/gix-protocol/src/handshake/refs/tests.rs
@@ -17,6 +17,7 @@ unborn refs/heads/symbolic symref-target:refs/heads/target
808e50d724f604f69ab93c6da2919c014667bedb refs/heads/main
7fe1b98b39423b71e14217aa299a03b7c937d656 refs/tags/foo peeled:808e50d724f604f69ab93c6da2919c014667bedb
7fe1b98b39423b71e14217aa299a03b7c937d6ff refs/tags/blaz
+978f927e6397113757dfec6332e7d9c7e356ac25 refs/heads/symbolic symref-target:refs/tags/v1.0 peeled:4d979abcde5cea47b079c38850828956c9382a56
"
.as_bytes(),
);
@@ -29,6 +30,7 @@ unborn refs/heads/symbolic symref-target:refs/heads/target
Ref::Symbolic {
full_ref_name: "HEAD".into(),
target: "refs/heads/main".into(),
+ tag: None,
object: oid("808e50d724f604f69ab93c6da2919c014667bedb")
},
Ref::Direct {
@@ -56,8 +58,14 @@ unborn refs/heads/symbolic symref-target:refs/heads/target
full_ref_name: "refs/tags/blaz".into(),
object: oid("7fe1b98b39423b71e14217aa299a03b7c937d6ff")
},
+ Ref::Symbolic {
+ full_ref_name: "refs/heads/symbolic".into(),
+ target: "refs/tags/v1.0".into(),
+ tag: Some(oid("978f927e6397113757dfec6332e7d9c7e356ac25")),
+ object: oid("4d979abcde5cea47b079c38850828956c9382a56")
+ },
]
- )
+ );
}
#[maybe_async::test(feature = "blocking-client", async(feature = "async-client", async_std::test))]
@@ -86,6 +94,7 @@ dce0ea858eef7ff61ad345cc5cdac62203fb3c10 refs/tags/gix-commitgraph-v0.0.0
Ref::Symbolic {
full_ref_name: "HEAD".into(),
target: "refs/heads/main".into(),
+ tag: None,
object: oid("73a6868963993a3328e7d8fe94e5a6ac5078a944")
},
Ref::Direct {
diff --git a/vendor/gix-protocol/src/ls_refs.rs b/vendor/gix-protocol/src/ls_refs.rs
index d0b2e9ba0..c5b71da93 100644
--- a/vendor/gix-protocol/src/ls_refs.rs
+++ b/vendor/gix-protocol/src/ls_refs.rs
@@ -86,7 +86,7 @@ pub(crate) mod function {
);
progress.step();
- progress.set_name("list refs");
+ progress.set_name("list refs".into());
let mut remote_refs = transport
.invoke(
ls_refs.as_str(),
diff --git a/vendor/gix-protocol/src/remote_progress.rs b/vendor/gix-protocol/src/remote_progress.rs
index 538a767fc..b516a06bf 100644
--- a/vendor/gix-protocol/src/remote_progress.rs
+++ b/vendor/gix-protocol/src/remote_progress.rs
@@ -1,10 +1,11 @@
use std::convert::TryFrom;
use bstr::ByteSlice;
-use nom::{
- bytes::complete::{tag, take_till, take_till1},
- combinator::{map_res, opt},
- sequence::{preceded, terminated},
+use winnow::{
+ combinator::opt,
+ combinator::{preceded, terminated},
+ prelude::*,
+ token::{tag, take_till0, take_till1},
};
/// The information usually found in remote progress messages as sent by a git server during
@@ -25,8 +26,8 @@ pub struct RemoteProgress<'a> {
impl<'a> RemoteProgress<'a> {
/// Parse the progress from a typical git progress `line` as sent by the remote.
- pub fn from_bytes(line: &[u8]) -> Option<RemoteProgress<'_>> {
- parse_progress(line).ok().and_then(|(_, r)| {
+ pub fn from_bytes(mut line: &[u8]) -> Option<RemoteProgress<'_>> {
+ parse_progress(&mut line).ok().and_then(|r| {
if r.percent.is_none() && r.step.is_none() && r.max.is_none() {
None
} else {
@@ -73,36 +74,36 @@ impl<'a> RemoteProgress<'a> {
}
}
-fn parse_number(i: &[u8]) -> nom::IResult<&[u8], usize> {
- map_res(take_till(|c: u8| !c.is_ascii_digit()), btoi::btoi)(i)
+fn parse_number(i: &mut &[u8]) -> PResult<usize, ()> {
+ take_till0(|c: u8| !c.is_ascii_digit())
+ .try_map(btoi::btoi)
+ .parse_next(i)
}
-fn next_optional_percentage(i: &[u8]) -> nom::IResult<&[u8], Option<u32>> {
+fn next_optional_percentage(i: &mut &[u8]) -> PResult<Option<u32>, ()> {
opt(terminated(
preceded(
- take_till(|c: u8| c.is_ascii_digit()),
- map_res(parse_number, u32::try_from),
+ take_till0(|c: u8| c.is_ascii_digit()),
+ parse_number.try_map(u32::try_from),
),
tag(b"%"),
- ))(i)
+ ))
+ .parse_next(i)
}
-fn next_optional_number(i: &[u8]) -> nom::IResult<&[u8], Option<usize>> {
- opt(preceded(take_till(|c: u8| c.is_ascii_digit()), parse_number))(i)
+fn next_optional_number(i: &mut &[u8]) -> PResult<Option<usize>, ()> {
+ opt(preceded(take_till0(|c: u8| c.is_ascii_digit()), parse_number)).parse_next(i)
}
-fn parse_progress(line: &[u8]) -> nom::IResult<&[u8], RemoteProgress<'_>> {
- let (i, action) = take_till1(|c| c == b':')(line)?;
- let (i, percent) = next_optional_percentage(i)?;
- let (i, step) = next_optional_number(i)?;
- let (i, max) = next_optional_number(i)?;
- Ok((
- i,
- RemoteProgress {
- action: action.into(),
- percent,
- step,
- max,
- },
- ))
+fn parse_progress<'i>(line: &mut &'i [u8]) -> PResult<RemoteProgress<'i>, ()> {
+ let action = take_till1(|c| c == b':').parse_next(line)?;
+ let percent = next_optional_percentage.parse_next(line)?;
+ let step = next_optional_number.parse_next(line)?;
+ let max = next_optional_number.parse_next(line)?;
+ Ok(RemoteProgress {
+ action: action.into(),
+ percent,
+ step,
+ max,
+ })
}