diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-30 18:31:36 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-30 18:31:36 +0000 |
commit | e02c5b5930c2c9ba3e5423fe12e2ef0155017297 (patch) | |
tree | fd60ebbbb5299e16e5fca8c773ddb74f764760db /vendor/gix-glob | |
parent | Adding debian version 1.73.0+dfsg1-1. (diff) | |
download | rustc-e02c5b5930c2c9ba3e5423fe12e2ef0155017297.tar.xz rustc-e02c5b5930c2c9ba3e5423fe12e2ef0155017297.zip |
Merging upstream version 1.74.1+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/gix-glob')
-rw-r--r-- | vendor/gix-glob/.cargo-checksum.json | 2 | ||||
-rw-r--r-- | vendor/gix-glob/CHANGELOG.md | 251 | ||||
-rw-r--r-- | vendor/gix-glob/Cargo.toml | 12 | ||||
-rw-r--r-- | vendor/gix-glob/src/parse.rs | 20 | ||||
-rw-r--r-- | vendor/gix-glob/src/pattern.rs | 47 | ||||
-rw-r--r-- | vendor/gix-glob/src/search/mod.rs | 12 | ||||
-rw-r--r-- | vendor/gix-glob/src/search/pattern.rs | 14 | ||||
-rwxr-xr-x[-rw-r--r--] | vendor/gix-glob/tests/fixtures/make_baseline.sh | 0 | ||||
-rw-r--r-- | vendor/gix-glob/tests/parse/mod.rs | 10 | ||||
-rw-r--r-- | vendor/gix-glob/tests/pattern/matching.rs | 32 | ||||
-rw-r--r-- | vendor/gix-glob/tests/search/pattern.rs | 22 | ||||
-rw-r--r-- | vendor/gix-glob/tests/wildmatch/mod.rs | 8 |
12 files changed, 371 insertions, 59 deletions
diff --git a/vendor/gix-glob/.cargo-checksum.json b/vendor/gix-glob/.cargo-checksum.json index 269ea5bdd..23c862b29 100644 --- a/vendor/gix-glob/.cargo-checksum.json +++ b/vendor/gix-glob/.cargo-checksum.json @@ -1 +1 @@ -{"files":{"CHANGELOG.md":"3954f42ffa731a1e357531b9f187b4c5daeb3a480bff6657826ae486d2fac427","Cargo.toml":"975d0257e53082d26f471346f248fe1ebf48ac618608e27d847b1d8f9b0ce259","LICENSE-APACHE":"cb4780590812826851ba250f90bed0ed19506ec98f6865a0e2e20bbf62391ff9","LICENSE-MIT":"49df47913ab2beafe8dc45607877ae64198bf0eee64aaad3e82ed9e4d27424e8","src/lib.rs":"988fab13064310afa7982ad4c0011839cba1d176ef4acc72a5228e99bf341c2b","src/parse.rs":"7938377963357b1f0bc65b8dfcd9e9689c92278546a57b3f38a838518c1287fb","src/pattern.rs":"a39fd609e9cd3d67079e434324819c56a8ad670c9fcf4ffb906b584674386ee8","src/search/mod.rs":"d06236d151f7e8ac02a12ee749960302f61c5c943fb0c14c53d37e40d7bee434","src/search/pattern.rs":"515969fef015d321a39612a6e294b5216fac67c3820b1856cb9b3a01ad6cfa58","src/wildmatch.rs":"f64da7dc4e7c1cd269dfa01f707909fd9af41176ebff498050b9311c41e6ccf1","tests/fixtures/generated-archives/make_baseline.tar.xz":"6bda59c1591dfd35f09cad5d09e2950b2a6ff885d9f7900535144a5275ab51c3","tests/fixtures/make_baseline.sh":"d6e93d2facf3bbd8e14b7bb579cea3be2e81f8fda8609ddde739d024fb019066","tests/glob.rs":"70c3b09855e0a495aa031586bc249a0b0270d72448f4d75277955019d7b11db0","tests/parse/mod.rs":"df604274c095b488b924a3e0ddfb3fb31bf1d59e04f608730c95981ddfd5e7b9","tests/pattern/matching.rs":"1a50ad5c36407d4f5ee79498355c272d3ba4910dad03733773dd9cd1e5d91278","tests/pattern/mod.rs":"28f9f3f99092be3813f93a4e0af149746305fa15326682adcbf3c61fa818534f","tests/search/mod.rs":"078b7bdaa0c022e1cdc88b69afa88a82033852137e69ce18995657d8e3fee6ca","tests/search/pattern.rs":"7368556d468196de6be78440986372256f42115b08fcee85de361faa24f2e341","tests/wildmatch/mod.rs":"8c285ced140edbe36b0f4fc6831d341bcd57f5e46c2083a7f0fb47e8e928c0a0"},"package":"cd0ade1e80ab1f079703d1824e1daf73009096386aa7fd2f0477f6e4ac0a558e"}
\ No newline at end of file +{"files":{"CHANGELOG.md":"de636fd42226103d91ccea1f5ba464d1bbd9726d454c4aa53aaffde9db3fb4b0","Cargo.toml":"1d2d4235972424597c3711b4a0e0b1e21d1d972d8fd0bc5c60377012846873f0","LICENSE-APACHE":"cb4780590812826851ba250f90bed0ed19506ec98f6865a0e2e20bbf62391ff9","LICENSE-MIT":"49df47913ab2beafe8dc45607877ae64198bf0eee64aaad3e82ed9e4d27424e8","src/lib.rs":"988fab13064310afa7982ad4c0011839cba1d176ef4acc72a5228e99bf341c2b","src/parse.rs":"9d7a40e1c75c6283029f919623f1b70c3b318db51b72f238870a5a0914cecbe8","src/pattern.rs":"eab7fe5a2946d5f2a8ba95796edf82e5ec270cf665d5aa2c76fb31ec1165796b","src/search/mod.rs":"eecdaad067ad60cb62a9291a2672bf480937bd17446d7048d5cec8ffdef5b67e","src/search/pattern.rs":"1df39783d8e5cff1b02bf4b97dc2343a6c23aa6558bcd7e70d71424c9a755cb1","src/wildmatch.rs":"f64da7dc4e7c1cd269dfa01f707909fd9af41176ebff498050b9311c41e6ccf1","tests/fixtures/generated-archives/make_baseline.tar.xz":"6bda59c1591dfd35f09cad5d09e2950b2a6ff885d9f7900535144a5275ab51c3","tests/fixtures/make_baseline.sh":"d6e93d2facf3bbd8e14b7bb579cea3be2e81f8fda8609ddde739d024fb019066","tests/glob.rs":"70c3b09855e0a495aa031586bc249a0b0270d72448f4d75277955019d7b11db0","tests/parse/mod.rs":"2bb2445b6d73c4614a7344c4ea10c7ff1dfd3da001d39c4b3ee19db54befa31c","tests/pattern/matching.rs":"73f0306f29121b7de67dd63d25b0070f9f3290b5089dff33d9235357804a1769","tests/pattern/mod.rs":"28f9f3f99092be3813f93a4e0af149746305fa15326682adcbf3c61fa818534f","tests/search/mod.rs":"078b7bdaa0c022e1cdc88b69afa88a82033852137e69ce18995657d8e3fee6ca","tests/search/pattern.rs":"522c24287461a9e1126339e4bc7fc953eec309cf9323faeae433fd962b1c44d2","tests/wildmatch/mod.rs":"ec5b3c652cab808dd0cf5a1c37e56c9d61ccb2ca52ec25049c9414b4667e7c11"},"package":"a9d76e85f11251dcf751d2c5e918a14f562db5be6f727fd24775245653e9b19d"}
\ No newline at end of file diff --git a/vendor/gix-glob/CHANGELOG.md b/vendor/gix-glob/CHANGELOG.md index c00f5d961..89cb2c376 100644 --- a/vendor/gix-glob/CHANGELOG.md +++ b/vendor/gix-glob/CHANGELOG.md @@ -5,6 +5,254 @@ 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.13.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. + - 16 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.12.0 (2023-09-08) + +### 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/> + + - 5 commits contributed to the release over the course of 17 calendar days. + - 17 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-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)) + - Merge branch 'gix-submodule' ([`363ee77`](https://github.com/Byron/gitoxide/commit/363ee77400805f473c9ad66eadad9214e7ab66f4)) +</details> + +## 0.11.0 (2023-08-22) + +<csr-id-229bd4899213f749a7cc124aa2b82a1368fba40f/> + +### Chore + + - <csr-id-229bd4899213f749a7cc124aa2b82a1368fba40f/> don't call crate 'WIP' in manifest anymore. + +### New Features + + - <csr-id-2b4868617a90eac818a150a2c3a027a71a8e420a/> add `Pattern::from_bytes_without_negation()` + +### Bug Fixes + + - <csr-id-ddb593b4c6acffe2fcbb458d0551998f91c97f8b/> be sure to allow `ENDS_WITH` optimization if shellglobs are enabled + +### New Features (BREAKING) + + - <csr-id-63ef011b9a7ae5e8574acd5bdeff4f27c37fb5f8/> `Pattern::matches_repo_relative_path(..., wildmatch::Flags)` allows controlling base flags. + Previously, this method would assume that path globs should stop at slashes, and now + this setting can be controlled by the caller. + +### Bug Fixes (BREAKING) + + - <csr-id-d9126ebb7686f667a02146c32006902ad4a82ff3/> `search::Pattern::may_use_glob_pattern()` removed + It actually wasn't used in the base implementation at all + +### Commit Statistics + +<csr-read-only-do-not-edit/> + + - 9 commits contributed to the release over the course of 12 calendar days. + - 15 days passed between releases. + - 5 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.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)) + - Merge branch 'gix-submodule' ([`8f3f358`](https://github.com/Byron/gitoxide/commit/8f3f358800f1fe77d7ba7ebd396a90b692d3c0c1)) + - Be sure to allow `ENDS_WITH` optimization if shellglobs are enabled ([`ddb593b`](https://github.com/Byron/gitoxide/commit/ddb593b4c6acffe2fcbb458d0551998f91c97f8b)) + - Don't call crate 'WIP' in manifest anymore. ([`229bd48`](https://github.com/Byron/gitoxide/commit/229bd4899213f749a7cc124aa2b82a1368fba40f)) + - Merge branch 'pathspec-matching' ([`9f4dfe0`](https://github.com/Byron/gitoxide/commit/9f4dfe0f0b948280692916b596923959ea2fd9da)) + - Add `Pattern::from_bytes_without_negation()` ([`2b48686`](https://github.com/Byron/gitoxide/commit/2b4868617a90eac818a150a2c3a027a71a8e420a)) + - `Pattern::matches_repo_relative_path(..., wildmatch::Flags)` allows controlling base flags. ([`63ef011`](https://github.com/Byron/gitoxide/commit/63ef011b9a7ae5e8574acd5bdeff4f27c37fb5f8)) + - `search::Pattern::may_use_glob_pattern()` removed ([`d9126eb`](https://github.com/Byron/gitoxide/commit/d9126ebb7686f667a02146c32006902ad4a82ff3)) +</details> + +## 0.10.2 (2023-08-07) + +A maintenance release without user-facing changes. + +### Commit Statistics + +<csr-read-only-do-not-edit/> + + - 4 commits contributed to the release over the course of 3 calendar days. + - 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** + - 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)) + - Prepare changelogs prior to release of `gix-submodule` ([`f3c4311`](https://github.com/Byron/gitoxide/commit/f3c43110e8d5f16cf87e50821044d8b3edbae235)) + - Merge branch 'dev-on-linux' ([`6b4a303`](https://github.com/Byron/gitoxide/commit/6b4a30330fe49fc97daa73f55bf56580cc0597aa)) + - Fix various tests to run properly on linux ([`ef8ccd9`](https://github.com/Byron/gitoxide/commit/ef8ccd9d16143d37155d063747c69cade80f162d)) +</details> + +## 0.10.1 (2023-07-22) + +A maintenance release without user-facing changes. + +### Commit Statistics + +<csr-read-only-do-not-edit/> + + - 5 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-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.10.0 (2023-07-19) + +### Bug Fixes + + - <csr-id-532c222faf7d3df1fe5c46209595647c3197a656/> when reading pattern files, don't fail if the directory doesn't exist. + The idea is that `search::pattern::List::from_file()` is that it won't fail if the there is no file. + However, previously it could fail if a leading directory didn't exist, which is now fixed. + +### Commit Statistics + +<csr-read-only-do-not-edit/> + + - 5 commits contributed to the release over the course of 9 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-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)) + - Merge branch 'integrate-filtering' ([`b19a56d`](https://github.com/Byron/gitoxide/commit/b19a56dcfa9bea86332a84aa4e8fad445e7d1724)) + - When reading pattern files, don't fail if the directory doesn't exist. ([`532c222`](https://github.com/Byron/gitoxide/commit/532c222faf7d3df1fe5c46209595647c3197a656)) +</details> + +## 0.9.1 (2023-06-29) + +A maintenance release without user-facing changes. + +### Commit Statistics + +<csr-read-only-do-not-edit/> + + - 3 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-glob v0.9.1, gix-attributes v0.14.1, gix-config-value v0.12.3, gix-ref v0.32.1, gix-sec v0.8.3, gix-config v0.25.1, gix-url v0.20.1, gix-credentials v0.16.1, gix-discover v0.21.1, gix-ignore v0.4.1, gix-pack v0.39.1, gix-odb v0.49.1, gix-worktree v0.21.1, gix v0.48.0 ([`69c6a36`](https://github.com/Byron/gitoxide/commit/69c6a36ba14cbef129deebda9fd8870005fefa17)) + - Prepare changelogs prior to release ([`c143cf4`](https://github.com/Byron/gitoxide/commit/c143cf48ee1885467e3e9262a3f8823a1247bfe0)) + - Align usage of `gix-path` across all crates ([`73c1292`](https://github.com/Byron/gitoxide/commit/73c1292be393986c4a1adde1400abf551e850da0)) +</details> + +## 0.9.0 (2023-06-22) + +<csr-id-bcad5c22049d56a25ef69d6c7a3344e78f9a1d4d/> + +### Chore + + - <csr-id-bcad5c22049d56a25ef69d6c7a3344e78f9a1d4d/> Add `clippy::redundant-closure-for-method-calls` lint + +### Commit Statistics + +<csr-read-only-do-not-edit/> + + - 6 commits contributed to the release over the course of 10 calendar days. + - 15 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-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)) +</details> + ## 0.8.0 (2023-06-06) A maintenance release without user-facing changes. @@ -13,7 +261,7 @@ A maintenance release without user-facing changes. <csr-read-only-do-not-edit/> - - 8 commits contributed to the release over the course of 12 calendar days. + - 9 commits contributed to the release over the course of 12 calendar days. - 40 days passed between releases. - 0 commits were understood as [conventional](https://www.conventionalcommits.org). - 0 issues like '(#ID)' were seen in commit messages @@ -25,6 +273,7 @@ A maintenance release without user-facing changes. <details><summary>view details</summary> * **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`](https://github.com/Byron/gitoxide/commit/9a9fa96fa8a722bddc5c3b2270b0edf8f6615141)) - Prepare changelogs prior to release ([`8f15cec`](https://github.com/Byron/gitoxide/commit/8f15cec1ec7d5a9d56bb158f155011ef2bb3539b)) - Merge branch 'fix-docs' ([`420553a`](https://github.com/Byron/gitoxide/commit/420553a10d780e0b2dc466cac120989298a5f187)) - Cleaning up documentation ([`2578e57`](https://github.com/Byron/gitoxide/commit/2578e576bfa365d194a23a1fb0bf09be230873de)) diff --git a/vendor/gix-glob/Cargo.toml b/vendor/gix-glob/Cargo.toml index 25ae46635..802ab730c 100644 --- a/vendor/gix-glob/Cargo.toml +++ b/vendor/gix-glob/Cargo.toml @@ -11,12 +11,12 @@ [package] edition = "2021" -rust-version = "1.64" +rust-version = "1.65" name = "gix-glob" -version = "0.8.0" +version = "0.13.0" authors = ["Sebastian Thiel <sebastian.thiel@icloud.com>"] -description = "A WIP crate of the gitoxide project dealing with pattern matching" -license = "MIT/Apache-2.0" +description = "A crate of the gitoxide project dealing with pattern matching" +license = "MIT OR Apache-2.0" repository = "https://github.com/Byron/gitoxide" [package.metadata.docs.rs] @@ -43,10 +43,10 @@ version = "0.2.0" optional = true [dependencies.gix-features] -version = "^0.30.0" +version = "^0.35.0" [dependencies.gix-path] -version = "^0.8.1" +version = "^0.10.0" [dependencies.serde] version = "1.0.114" diff --git a/vendor/gix-glob/src/parse.rs b/vendor/gix-glob/src/parse.rs index 665f459b9..368cf77c5 100644 --- a/vendor/gix-glob/src/parse.rs +++ b/vendor/gix-glob/src/parse.rs @@ -6,22 +6,26 @@ use crate::{pattern, pattern::Mode}; /// A sloppy parser that performs only the most basic checks, providing additional information /// using `pattern::Mode` flags. /// +/// If `may_alter` is `false`, we won't parse leading `!` or its escaped form. +/// /// Returns `(pattern, mode, no_wildcard_len)` -pub fn pattern(mut pat: &[u8]) -> Option<(&[u8], pattern::Mode, Option<usize>)> { +pub fn pattern(mut pat: &[u8], may_alter: bool) -> Option<(&[u8], pattern::Mode, Option<usize>)> { let mut mode = Mode::empty(); if pat.is_empty() { return None; }; - if pat.first() == Some(&b'!') { - mode |= Mode::NEGATIVE; - pat = &pat[1..]; - } else if pat.first() == Some(&b'\\') { - let second = pat.get(1); - if second == Some(&b'!') || second == Some(&b'#') { + if may_alter { + if pat.first() == Some(&b'!') { + mode |= Mode::NEGATIVE; pat = &pat[1..]; + } else if pat.first() == Some(&b'\\') { + let second = pat.get(1); + if second == Some(&b'!') || second == Some(&b'#') { + pat = &pat[1..]; + } } } - if pat.iter().all(|b| b.is_ascii_whitespace()) { + if pat.iter().all(u8::is_ascii_whitespace) { return None; } if pat.first() == Some(&b'/') { diff --git a/vendor/gix-glob/src/pattern.rs b/vendor/gix-glob/src/pattern.rs index 3c0dbfea2..475b912b0 100644 --- a/vendor/gix-glob/src/pattern.rs +++ b/vendor/gix-glob/src/pattern.rs @@ -44,7 +44,18 @@ pub enum Case { impl Pattern { /// Parse the given `text` as pattern, or return `None` if `text` was empty. pub fn from_bytes(text: &[u8]) -> Option<Self> { - crate::parse::pattern(text).map(|(text, mode, first_wildcard_pos)| Pattern { + crate::parse::pattern(text, true).map(|(text, mode, first_wildcard_pos)| Pattern { + text: text.into(), + mode, + first_wildcard_pos, + }) + } + + /// Parse the given `text` as pattern without supporting leading `!` or `\\!` , or return `None` if `text` was empty. + /// + /// This assures that `text` remains entirely unaltered, but removes built-in support for negation as well. + pub fn from_bytes_without_negation(text: &[u8]) -> Option<Self> { + crate::parse::pattern(text, false).map(|(text, mode, first_wildcard_pos)| Pattern { text: text.into(), mode, first_wildcard_pos, @@ -65,30 +76,36 @@ impl Pattern { /// We may take various shortcuts which is when `basename_start_pos` and `is_dir` come into play. /// `basename_start_pos` is the index at which the `path`'s basename starts. /// - /// Lastly, `case` folding can be configured as well. - pub fn matches_repo_relative_path<'a>( + /// `case` folding can be configured as well. + /// `mode` is used to control how [`crate::wildmatch()`] should operate. + pub fn matches_repo_relative_path( &self, - path: impl Into<&'a BStr>, + path: &BStr, basename_start_pos: Option<usize>, is_dir: Option<bool>, case: Case, + mode: wildmatch::Mode, ) -> bool { let is_dir = is_dir.unwrap_or(false); if !is_dir && self.mode.contains(pattern::Mode::MUST_BE_DIR) { return false; } - let flags = wildmatch::Mode::NO_MATCH_SLASH_LITERAL + let flags = mode | match case { Case::Fold => wildmatch::Mode::IGNORE_CASE, Case::Sensitive => wildmatch::Mode::empty(), }; - let path = path.into(); - debug_assert_eq!( - basename_start_pos, - path.rfind_byte(b'/').map(|p| p + 1), - "BUG: invalid cached basename_start_pos provided" - ); + #[cfg(debug_assertions)] + { + if basename_start_pos.is_some() { + debug_assert_eq!( + basename_start_pos, + path.rfind_byte(b'/').map(|p| p + 1), + "BUG: invalid cached basename_start_pos provided" + ); + } + } debug_assert!(!path.starts_with(b"/"), "input path must be relative"); if self.mode.contains(pattern::Mode::NO_SUB_DIR) && !self.mode.contains(pattern::Mode::ABSOLUTE) { @@ -106,11 +123,13 @@ impl Pattern { /// /// Note that this method uses some shortcuts to accelerate simple patterns, but falls back to /// [wildmatch()][crate::wildmatch()] if these fail. - pub fn matches<'a>(&self, value: impl Into<&'a BStr>, mode: wildmatch::Mode) -> bool { - let value = value.into(); + pub fn matches(&self, value: &BStr, mode: wildmatch::Mode) -> bool { match self.first_wildcard_pos { // "*literal" case, overrides starts-with - Some(pos) if self.mode.contains(pattern::Mode::ENDS_WITH) && !value.contains(&b'/') => { + Some(pos) + if self.mode.contains(pattern::Mode::ENDS_WITH) + && (!mode.contains(wildmatch::Mode::NO_MATCH_SLASH_LITERAL) || !value.contains(&b'/')) => + { let text = &self.text[pos + 1..]; if mode.contains(wildmatch::Mode::IGNORE_CASE) { value diff --git a/vendor/gix-glob/src/search/mod.rs b/vendor/gix-glob/src/search/mod.rs index a31e2af37..b6fb2a490 100644 --- a/vendor/gix-glob/src/search/mod.rs +++ b/vendor/gix-glob/src/search/mod.rs @@ -16,9 +16,6 @@ pub trait Pattern: Clone + PartialEq + Eq + std::fmt::Debug + std::hash::Hash + /// Parse all patterns in `bytes` line by line, ignoring lines with errors, and collect them. fn bytes_to_patterns(bytes: &[u8], source: &Path) -> Vec<pattern::Mapping<Self::Value>>; - - /// Returns true if the given pattern may be used for matching. - fn may_use_glob_pattern(pattern: &crate::Pattern) -> bool; } /// Add the given file at `source` if it exists, otherwise do nothing. @@ -26,17 +23,12 @@ pub trait Pattern: Clone + PartialEq + Eq + std::fmt::Debug + std::hash::Hash + /// Returns `true` if the file was added, or `false` if it didn't exist. pub fn add_patterns_file<T: Pattern>( patterns: &mut Vec<pattern::List<T>>, - source: impl Into<PathBuf>, + source: PathBuf, follow_symlinks: bool, root: Option<&Path>, buf: &mut Vec<u8>, ) -> std::io::Result<bool> { let previous_len = patterns.len(); - patterns.extend(pattern::List::<T>::from_file( - source.into(), - root, - follow_symlinks, - buf, - )?); + patterns.extend(pattern::List::<T>::from_file(source, root, follow_symlinks, buf)?); Ok(patterns.len() != previous_len) } diff --git a/vendor/gix-glob/src/search/pattern.rs b/vendor/gix-glob/src/search/pattern.rs index 8bb195757..828e59df3 100644 --- a/vendor/gix-glob/src/search/pattern.rs +++ b/vendor/gix-glob/src/search/pattern.rs @@ -51,7 +51,9 @@ fn read_in_full_ignore_missing(path: &Path, follow_symlinks: bool, buf: &mut Vec file.read_to_end(buf)?; true } - Err(err) if err.kind() == std::io::ErrorKind::NotFound => false, + Err(err) if err.kind() == std::io::ErrorKind::NotFound || + // TODO: use the enum variant NotADirectory for this once stabilized + err.raw_os_error() == Some(20) /* Not a directory */ => false, Err(err) => return Err(err), }) } @@ -64,12 +66,10 @@ where /// `source_file` is the location of the `bytes` which represents a list of patterns, one pattern per line. /// If `root` is `Some(…)` it's used to see `source_file` as relative to itself, if `source_file` is absolute. /// If source is relative and should be treated as base, set `root` to `Some("")`. - pub fn from_bytes(bytes: &[u8], source_file: impl Into<PathBuf>, root: Option<&Path>) -> Self { - let source = source_file.into(); - let patterns = T::bytes_to_patterns(bytes, source.as_path()); - + pub fn from_bytes(bytes: &[u8], source_file: PathBuf, root: Option<&Path>) -> Self { + let patterns = T::bytes_to_patterns(bytes, source_file.as_path()); let base = root - .and_then(|root| source.parent().expect("file").strip_prefix(root).ok()) + .and_then(|root| source_file.parent().expect("file").strip_prefix(root).ok()) .and_then(|base| { (!base.as_os_str().is_empty()).then(|| { let mut base: BString = @@ -81,7 +81,7 @@ where }); List { patterns, - source: Some(source), + source: Some(source_file), base, } } diff --git a/vendor/gix-glob/tests/fixtures/make_baseline.sh b/vendor/gix-glob/tests/fixtures/make_baseline.sh index 5787ff64c..5787ff64c 100644..100755 --- a/vendor/gix-glob/tests/fixtures/make_baseline.sh +++ b/vendor/gix-glob/tests/fixtures/make_baseline.sh diff --git a/vendor/gix-glob/tests/parse/mod.rs b/vendor/gix-glob/tests/parse/mod.rs index fc668d1e6..8377a44f2 100644 --- a/vendor/gix-glob/tests/parse/mod.rs +++ b/vendor/gix-glob/tests/parse/mod.rs @@ -66,11 +66,21 @@ fn leading_exclamation_mark_negates_pattern() { gix_glob::parse(b"!hello"), pat("hello", Mode::NEGATIVE | Mode::NO_SUB_DIR, None) ); + assert_eq!( + gix_glob::Pattern::from_bytes_without_negation(b"!hello"), + pat("!hello", Mode::NO_SUB_DIR, None), + "negation can be disabled entirely" + ); } #[test] fn leading_exclamation_marks_can_be_escaped_with_backslash() { assert_eq!(gix_glob::parse(br"\!hello"), pat("!hello", Mode::NO_SUB_DIR, None)); + assert_eq!( + gix_glob::Pattern::from_bytes_without_negation(br"\!hello"), + pat("\\!hello", Mode::NO_SUB_DIR, Some(0)), + "negation can be disabled entirely, leaving escapes in place" + ); } #[test] diff --git a/vendor/gix-glob/tests/pattern/matching.rs b/vendor/gix-glob/tests/pattern/matching.rs index 8a5208d9a..df29e02dc 100644 --- a/vendor/gix-glob/tests/pattern/matching.rs +++ b/vendor/gix-glob/tests/pattern/matching.rs @@ -68,7 +68,13 @@ fn compare_baseline_with_ours() { ); match std::panic::catch_unwind(|| { let pattern = pat(pattern); - pattern.matches_repo_relative_path(value, basename_start_pos(value), None, *case) + pattern.matches_repo_relative_path( + value, + basename_start_pos(value), + None, + *case, + gix_glob::wildmatch::Mode::NO_MATCH_SLASH_LITERAL, + ) }) { Ok(actual_match) => { if actual_match == is_match { @@ -105,11 +111,23 @@ fn non_dirs_for_must_be_dir_patterns_are_ignored() { ); let path = "hello"; assert!( - !pattern.matches_repo_relative_path(path, None, false.into() /* is-dir */, Case::Sensitive), + !pattern.matches_repo_relative_path( + path.into(), + None, + false.into(), /* is-dir */ + Case::Sensitive, + gix_glob::wildmatch::Mode::NO_MATCH_SLASH_LITERAL + ), "non-dirs never match a dir pattern" ); assert!( - pattern.matches_repo_relative_path(path, None, true.into() /* is-dir */, Case::Sensitive), + pattern.matches_repo_relative_path( + path.into(), + None, + true.into(), /* is-dir */ + Case::Sensitive, + gix_glob::wildmatch::Mode::NO_MATCH_SLASH_LITERAL + ), "dirs can match a dir pattern with the normal rules" ); } @@ -317,7 +335,13 @@ fn match_file<'a>(pattern: &gix_glob::Pattern, path: impl Into<&'a BStr>, case: fn match_path<'a>(pattern: &gix_glob::Pattern, path: impl Into<&'a BStr>, is_dir: Option<bool>, case: Case) -> bool { let path = path.into(); - pattern.matches_repo_relative_path(path, basename_start_pos(path), is_dir, case) + pattern.matches_repo_relative_path( + path, + basename_start_pos(path), + is_dir, + case, + gix_glob::wildmatch::Mode::NO_MATCH_SLASH_LITERAL, + ) } fn basename_start_pos(value: &BStr) -> Option<usize> { diff --git a/vendor/gix-glob/tests/search/pattern.rs b/vendor/gix-glob/tests/search/pattern.rs index 0313b5564..6b62ee3d2 100644 --- a/vendor/gix-glob/tests/search/pattern.rs +++ b/vendor/gix-glob/tests/search/pattern.rs @@ -18,16 +18,12 @@ mod list { fn bytes_to_patterns(_bytes: &[u8], _source: &Path) -> Vec<Mapping<Self::Value>> { vec![] } - - fn may_use_glob_pattern(_pattern: &gix_glob::Pattern) -> bool { - unreachable!("won't be called") - } } #[test] fn from_bytes_base() { { - let list = List::<Dummy>::from_bytes(&[], "a/b/source", None); + let list = List::<Dummy>::from_bytes(&[], "a/b/source".into(), None); assert_eq!(list.base, None, "no root always means no-base, i.e. globals lists"); assert_eq!( list.source.as_deref(), @@ -52,7 +48,7 @@ mod list { } { - let list = List::<Dummy>::from_bytes(&[], "a/b/source", Some(Path::new("c/"))); + let list = List::<Dummy>::from_bytes(&[], "a/b/source".into(), Some(Path::new("c/"))); assert_eq!( list.base, None, "if root doesn't contain source, it silently skips it as base" @@ -67,7 +63,7 @@ mod list { #[test] fn strip_base_handle_recompute_basename_pos() { - let list = List::<Dummy>::from_bytes(&[], "a/b/source", Some(Path::new(""))); + let list = List::<Dummy>::from_bytes(&[], "a/b/source".into(), Some(Path::new(""))); assert_eq!( list.base.as_ref().expect("set"), "a/b/", @@ -87,4 +83,16 @@ mod list { "otherwise the basename is recomputed, case folding is effective" ); } + + #[test] + fn from_file() { + let mut buf = Vec::new(); + for path in [ + Path::new(".").join("non-existing-dir").join("pattern-file"), + Path::new("file").to_owned(), + ] { + let list = List::<Dummy>::from_file(path, None, false, &mut buf).expect("no io error"); + assert!(list.is_none(), "the file does not exist"); + } + } } diff --git a/vendor/gix-glob/tests/wildmatch/mod.rs b/vendor/gix-glob/tests/wildmatch/mod.rs index 11fbd664b..b4b198ec7 100644 --- a/vendor/gix-glob/tests/wildmatch/mod.rs +++ b/vendor/gix-glob/tests/wildmatch/mod.rs @@ -367,7 +367,13 @@ impl Display for MatchResult { } fn match_file_path(pattern: &gix_glob::Pattern, path: &str, case: Case) -> bool { - pattern.matches_repo_relative_path(path, basename_of(path), false.into() /* is_dir */, case) + pattern.matches_repo_relative_path( + path.into(), + basename_of(path), + false.into(), /* is_dir */ + case, + gix_glob::wildmatch::Mode::NO_MATCH_SLASH_LITERAL, + ) } fn basename_of(path: &str) -> Option<usize> { path.rfind('/').map(|pos| pos + 1) |