diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-18 02:49:50 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-18 02:49:50 +0000 |
commit | 9835e2ae736235810b4ea1c162ca5e65c547e770 (patch) | |
tree | 3fcebf40ed70e581d776a8a4c65923e8ec20e026 /vendor/gix-config | |
parent | Releasing progress-linux version 1.70.0+dfsg2-1~progress7.99u1. (diff) | |
download | rustc-9835e2ae736235810b4ea1c162ca5e65c547e770.tar.xz rustc-9835e2ae736235810b4ea1c162ca5e65c547e770.zip |
Merging upstream version 1.71.1+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/gix-config')
-rw-r--r-- | vendor/gix-config/.cargo-checksum.json | 2 | ||||
-rw-r--r-- | vendor/gix-config/CHANGELOG.md | 188 | ||||
-rw-r--r-- | vendor/gix-config/Cargo.toml | 31 | ||||
-rw-r--r-- | vendor/gix-config/src/file/access/raw.rs | 2 | ||||
-rw-r--r-- | vendor/gix-config/src/file/init/comfort.rs | 16 | ||||
-rw-r--r-- | vendor/gix-config/src/file/init/from_paths.rs | 53 | ||||
-rw-r--r-- | vendor/gix-config/src/file/init/types.rs | 4 | ||||
-rw-r--r-- | vendor/gix-config/src/file/section/body.rs | 2 | ||||
-rw-r--r-- | vendor/gix-config/src/parse/events.rs | 2 | ||||
-rw-r--r-- | vendor/gix-config/src/parse/mod.rs | 2 | ||||
-rw-r--r-- | vendor/gix-config/src/source.rs | 91 |
11 files changed, 277 insertions, 116 deletions
diff --git a/vendor/gix-config/.cargo-checksum.json b/vendor/gix-config/.cargo-checksum.json index 973e82241..11d409557 100644 --- a/vendor/gix-config/.cargo-checksum.json +++ b/vendor/gix-config/.cargo-checksum.json @@ -1 +1 @@ -{"files":{"CHANGELOG.md":"1ed0411cb6220e3bccbb86812ead61eca51db3194e1f0cf0b09380005e8ab12e","Cargo.toml":"980090f2bdac1cb3f34ce8e0a77c36d13ef3db5e2a40c287fedd36eb51007023","LICENSE-APACHE":"cb4780590812826851ba250f90bed0ed19506ec98f6865a0e2e20bbf62391ff9","LICENSE-MIT":"49df47913ab2beafe8dc45607877ae64198bf0eee64aaad3e82ed9e4d27424e8","README.md":"83f6ef126630abc0e0a5eec8b51c559dbd56211e3a66e3ec021bcea04434f452","src/file/access/comfort.rs":"00a236fcfd4b2b37bf2d4c0763573c13a430564f01af417828d412f4827c0f45","src/file/access/mod.rs":"89141297ba7e1651c60a3637760598f8509fe651a80dc5801aace66bd2c52292","src/file/access/mutate.rs":"7396aa250717bc0a15b9da3701746c3cab0a3c6cb09342922062b26d61b0a1c1","src/file/access/raw.rs":"93267ddfe0ee7c6f41841d0346fdddb4b9eec9522701dc50c09908aac0a170d5","src/file/access/read_only.rs":"218ba05c1f014b4a2a86fcfc6cf4e8e8a34967deded0fa934d07e0119ab496c8","src/file/impls.rs":"c066fdeaeca00a8899704216be060d2b461aa21bd9800883d29e3cc0a59f5fd8","src/file/includes/mod.rs":"f82ed5445391c8442da672b7f8c92f85844ba58d35aa0dfcaf2dfa8c209307d2","src/file/includes/types.rs":"0c1c7c52cee624d840e356f0db0c7791392f89cc6ab0fc7cf074bd05d952c85a","src/file/init/comfort.rs":"0b5742d28fbb789c9bc99222fb4aa7f59c8c612e4c28ba389e19494247b60e8b","src/file/init/from_env.rs":"db5ec43667e0cd3f35d53e9d2137dbdbcd661fe8e0452c28e91ac8172c1d3af7","src/file/init/from_paths.rs":"3bac62208d6c975e489849af4f7fb5e5ece44cd0ca83647eb254f8f6da32bdc7","src/file/init/mod.rs":"3432a5eac10605c86c6fcff6dab169a8e3ddba8fe8f90603559a9e94f1ac3474","src/file/init/types.rs":"cd8d34cc012837b1acf8b55586c11d22768ce04a03874aadf044ca7cf3ed6da6","src/file/meta.rs":"02c46267b6088e7d1be3f7402929b3b98cdab71c682e1efae2c0eebd88ac97ad","src/file/mod.rs":"9e3a0a327fab36de1e83fb3d2057b43afa3e83712e00e5ab8c559e72d1d9f375","src/file/mutable/mod.rs":"ac64e210920df986e15ff4136bc7966ba15c2a2dc246fc34320ad2f6fec19ab0","src/file/mutable/multi_value.rs":"b3824387af097c410c8a9627239036e15525af5d4113ebcfbb4c48e6f8591337","src/file/mutable/section.rs":"7ac4774a3115e3446a4eb41170f835e796f561e61c7e16ae9231d0f13441ac0c","src/file/mutable/value.rs":"4211ff648477e37c4f8bcf7fa497233b09a24a8b411e57fc4be441d793377f4d","src/file/section/body.rs":"28a07cd0ec5eb580fdaf9d0199fb4d5e0e7f0ccaa80a4203036873a056adba3a","src/file/section/mod.rs":"dd79241648ee1dceb10d567dd564853062336bf428856cf9a52fafa1ffce4611","src/file/tests.rs":"cceccb786694f29e858e54a6fdc6769a64ae58989809bdd60e09041156050f1e","src/file/util.rs":"2b9c52b242c45cf7075cddf5383523c095c01ce612b9da139a853039beff6bc8","src/file/write.rs":"63e16eb5324b3482654dce16761a0b894b8bfe370aacefa21b7cd52c8bc3cab5","src/lib.rs":"b0d5ec429067741a1e3b0e5820e24d1af614282f14bd818fe3919acb3239ba44","src/lookup.rs":"205df00cabf25f0fd3709325e75cdc2c1cd2af4ef86bbd15253543a9bb962e62","src/parse/comment.rs":"dfe1ad56385490062792c59b3068552e847b9c55b7a91ee480b7ea6026f12889","src/parse/error.rs":"7e3ce30c7036cb6900be5e751657b879fc8a7dcab760f10ea481d4a57a90b347","src/parse/event.rs":"02110fb38c7f1ea3eff1cecccc6c39f4a60958f18ab6d73220b104c2d6bd7213","src/parse/events.rs":"2b1fb245c00a66810a7ac52e477acb734c82b20811e4a61940110cd56103237c","src/parse/key.rs":"6922c4d0293546bc6b9a97364a6dc97b9cdb0c8ba8ffdc44c059be63ce4c16c7","src/parse/mod.rs":"c7f3d4fa2c3888e1390de84864f23b3368f08c1480817c9b4cb76b6d07025bb0","src/parse/nom/mod.rs":"b7525ffd344f1e149978822d1cca369186cabc3986be43a54e4336043d0bf8b6","src/parse/nom/tests.rs":"6841d40eb8580a166bd5f3fdcacdcde5702527126e886239847fd29d87df2cf7","src/parse/section/header.rs":"0d7a1a4d892ac5c0abd86c4951f4806f159ea7c37dbe89bfc86b67dfe76014ec","src/parse/section/mod.rs":"5be22e4d120a12a59be38fcb25a95ce7b0e581ded53e99311ffb0f3780ac841a","src/parse/section/unvalidated.rs":"ffbc552e5c6f78fca05ad05f703fef9889777c22facb526ea5fca9c0121ae8c4","src/parse/tests.rs":"911f6972060feb521448f4e6ec9824ff524a9bc51d80fe1460548a6b88036dc4","src/source.rs":"19871a85b0cd0ccee37e33cbbc6c1ba7c92cb4137a6828f877faacd42cb5609a","src/types.rs":"9f4b61b86e1e438cd31518c478b16c9f97f626f1bcea8b93fee7797c82d6be0d","src/value/mod.rs":"1e46a250fc69cecb11d762290fa0c5a2b8f51451541e9e457d0bacafd160e54d","src/value/normalize.rs":"54ca650fdaaf24124df0c6d9137eb90dfda314b28386778970aa25e6b01397f5"},"package":"52c62e26ce11f607712e4f49a0a192ed87675d30187fd61be070abbd607d12f1"}
\ No newline at end of file +{"files":{"CHANGELOG.md":"eb6908e2a6a922c14321d88540451642920c35e55a9fd98b117987815e85e150","Cargo.toml":"eeb0c28e2490d81bfcd5854f3145ec550176d50951b4b15979143859967100ea","LICENSE-APACHE":"cb4780590812826851ba250f90bed0ed19506ec98f6865a0e2e20bbf62391ff9","LICENSE-MIT":"49df47913ab2beafe8dc45607877ae64198bf0eee64aaad3e82ed9e4d27424e8","README.md":"83f6ef126630abc0e0a5eec8b51c559dbd56211e3a66e3ec021bcea04434f452","src/file/access/comfort.rs":"00a236fcfd4b2b37bf2d4c0763573c13a430564f01af417828d412f4827c0f45","src/file/access/mod.rs":"89141297ba7e1651c60a3637760598f8509fe651a80dc5801aace66bd2c52292","src/file/access/mutate.rs":"7396aa250717bc0a15b9da3701746c3cab0a3c6cb09342922062b26d61b0a1c1","src/file/access/raw.rs":"b19593f0c95f8a28c680592551307a67c36ac82f49b074dae78d23f22d43d8ac","src/file/access/read_only.rs":"218ba05c1f014b4a2a86fcfc6cf4e8e8a34967deded0fa934d07e0119ab496c8","src/file/impls.rs":"c066fdeaeca00a8899704216be060d2b461aa21bd9800883d29e3cc0a59f5fd8","src/file/includes/mod.rs":"f82ed5445391c8442da672b7f8c92f85844ba58d35aa0dfcaf2dfa8c209307d2","src/file/includes/types.rs":"0c1c7c52cee624d840e356f0db0c7791392f89cc6ab0fc7cf074bd05d952c85a","src/file/init/comfort.rs":"6e7a730d7a59dbcc41967b4f962de9b02e69aae7bc4cadf30316bc13eb9eac90","src/file/init/from_env.rs":"db5ec43667e0cd3f35d53e9d2137dbdbcd661fe8e0452c28e91ac8172c1d3af7","src/file/init/from_paths.rs":"0cb1a1839844638ce55af79ea42130f685c5be1ca43f26e0398b57f8758b24cb","src/file/init/mod.rs":"3432a5eac10605c86c6fcff6dab169a8e3ddba8fe8f90603559a9e94f1ac3474","src/file/init/types.rs":"ceeceed969b084123b9c82cbefd0d2b1bae0dcd12714dad1ce99d6ee75866d62","src/file/meta.rs":"02c46267b6088e7d1be3f7402929b3b98cdab71c682e1efae2c0eebd88ac97ad","src/file/mod.rs":"9e3a0a327fab36de1e83fb3d2057b43afa3e83712e00e5ab8c559e72d1d9f375","src/file/mutable/mod.rs":"ac64e210920df986e15ff4136bc7966ba15c2a2dc246fc34320ad2f6fec19ab0","src/file/mutable/multi_value.rs":"b3824387af097c410c8a9627239036e15525af5d4113ebcfbb4c48e6f8591337","src/file/mutable/section.rs":"7ac4774a3115e3446a4eb41170f835e796f561e61c7e16ae9231d0f13441ac0c","src/file/mutable/value.rs":"4211ff648477e37c4f8bcf7fa497233b09a24a8b411e57fc4be441d793377f4d","src/file/section/body.rs":"7a8cc258e69bb7251db88780247f562b99a61d2ba92befc716a8b0da3c7bb83e","src/file/section/mod.rs":"dd79241648ee1dceb10d567dd564853062336bf428856cf9a52fafa1ffce4611","src/file/tests.rs":"cceccb786694f29e858e54a6fdc6769a64ae58989809bdd60e09041156050f1e","src/file/util.rs":"2b9c52b242c45cf7075cddf5383523c095c01ce612b9da139a853039beff6bc8","src/file/write.rs":"63e16eb5324b3482654dce16761a0b894b8bfe370aacefa21b7cd52c8bc3cab5","src/lib.rs":"b0d5ec429067741a1e3b0e5820e24d1af614282f14bd818fe3919acb3239ba44","src/lookup.rs":"205df00cabf25f0fd3709325e75cdc2c1cd2af4ef86bbd15253543a9bb962e62","src/parse/comment.rs":"dfe1ad56385490062792c59b3068552e847b9c55b7a91ee480b7ea6026f12889","src/parse/error.rs":"7e3ce30c7036cb6900be5e751657b879fc8a7dcab760f10ea481d4a57a90b347","src/parse/event.rs":"02110fb38c7f1ea3eff1cecccc6c39f4a60958f18ab6d73220b104c2d6bd7213","src/parse/events.rs":"d2d99a8eedfce801eb0639493d2822480e88cb73d6bfd6510e90535c931d13cf","src/parse/key.rs":"6922c4d0293546bc6b9a97364a6dc97b9cdb0c8ba8ffdc44c059be63ce4c16c7","src/parse/mod.rs":"08e392c9f45e9313ba471e96b20d3c570c15015b2ddc09c9d4f47535b10746a6","src/parse/nom/mod.rs":"b7525ffd344f1e149978822d1cca369186cabc3986be43a54e4336043d0bf8b6","src/parse/nom/tests.rs":"6841d40eb8580a166bd5f3fdcacdcde5702527126e886239847fd29d87df2cf7","src/parse/section/header.rs":"0d7a1a4d892ac5c0abd86c4951f4806f159ea7c37dbe89bfc86b67dfe76014ec","src/parse/section/mod.rs":"5be22e4d120a12a59be38fcb25a95ce7b0e581ded53e99311ffb0f3780ac841a","src/parse/section/unvalidated.rs":"ffbc552e5c6f78fca05ad05f703fef9889777c22facb526ea5fca9c0121ae8c4","src/parse/tests.rs":"911f6972060feb521448f4e6ec9824ff524a9bc51d80fe1460548a6b88036dc4","src/source.rs":"719ed8b2df9079816420a27f3d9ed3cd66f00c1603b1ef76d13145fa93a59928","src/types.rs":"9f4b61b86e1e438cd31518c478b16c9f97f626f1bcea8b93fee7797c82d6be0d","src/value/mod.rs":"1e46a250fc69cecb11d762290fa0c5a2b8f51451541e9e457d0bacafd160e54d","src/value/normalize.rs":"54ca650fdaaf24124df0c6d9137eb90dfda314b28386778970aa25e6b01397f5"},"package":"1d252a0eddb6df74600d3d8872dc9fe98835a7da43110411d705b682f49d4ac1"}
\ No newline at end of file diff --git a/vendor/gix-config/CHANGELOG.md b/vendor/gix-config/CHANGELOG.md index 874fb2a14..21e19805e 100644 --- a/vendor/gix-config/CHANGELOG.md +++ b/vendor/gix-config/CHANGELOG.md @@ -5,7 +5,166 @@ 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.18.0 (2023-03-04) +## 0.22.0 (2023-04-27) + +A maintenance release without user-facing changes. + +### Commit Statistics + +<csr-read-only-do-not-edit/> + + - 2 commits contributed to the release. + - 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 ([`0135158`](https://github.com/Byron/gitoxide/commit/013515897215400539bfd53c25548bd054186ba6)) + - Bump gix-path v0.8.0, safety bump 20 crates (gix set to 0.44.1 manually) ([`43ebaf2`](https://github.com/Byron/gitoxide/commit/43ebaf267557218865862538ffc7bdf00558492f)) +</details> + +## 0.21.0 (2023-04-26) + +### Bug Fixes + + - <csr-id-13edfe96696636c30040ec81ebc4e235ac689429/> use `home` in `env::home_dir()` + - <csr-id-da9009f807acfe50000724589853a112fc5ab9a4/> Use `gix-path` for obtaining some shared directories as base for path generation. + This will make system wide configuration available on windows at least when using the migw builds. + +### New Features (BREAKING) + + - <csr-id-b83ee366a3c65c717beb587ad809268f1c54b8ad/> Rename `serde1` cargo feature to `serde` and use the weak-deps cargo capability. + With it it's possible to not automatically declare all optional dependencies externally visible + features, and thus re-use feature names that oterwise are also a crate name. + + Previously I thought that `serde1` is for future-proofing and supporting multiple serde versions + at the same time. However, it's most definitely a burden I wouldn't want anyway, so using + `serde` seems to be the way to go into the future. + +### Commit Statistics + +<csr-read-only-do-not-edit/> + + - 14 commits contributed to the release over the course of 23 calendar days. + - 27 days passed between releases. + - 3 commits were understood as [conventional](https://www.conventionalcommits.org). + - 1 unique issue was worked on: [#814](https://github.com/Byron/gitoxide/issues/814) + +### Commit Details + +<csr-read-only-do-not-edit/> + +<details><summary>view details</summary> + + * **[#814](https://github.com/Byron/gitoxide/issues/814)** + - Rename `serde1` cargo feature to `serde` and use the weak-deps cargo capability. ([`b83ee36`](https://github.com/Byron/gitoxide/commit/b83ee366a3c65c717beb587ad809268f1c54b8ad)) + * **Uncategorized** + - Release gix-hash v0.11.1, gix-path v0.7.4, gix-glob v0.6.0, gix-attributes v0.11.0, gix-config-value v0.11.0, gix-fs v0.1.1, gix-tempfile v5.0.3, gix-utils v0.1.1, gix-lock v5.0.1, gix-object v0.29.1, gix-ref v0.28.0, gix-sec v0.7.0, gix-config v0.21.0, gix-prompt v0.4.0, gix-url v0.17.0, gix-credentials v0.13.0, gix-diff v0.29.0, gix-discover v0.17.0, gix-hashtable v0.2.0, gix-ignore v0.1.0, gix-bitmap v0.2.3, gix-traverse v0.25.0, gix-index v0.16.0, gix-mailmap v0.12.0, gix-pack v0.34.0, gix-odb v0.44.0, gix-packetline v0.16.0, gix-transport v0.30.0, gix-protocol v0.31.0, gix-revision v0.13.0, gix-refspec v0.10.0, gix-worktree v0.16.0, gix v0.44.0, safety bump 7 crates ([`91134a1`](https://github.com/Byron/gitoxide/commit/91134a11c8ba0e942f692488ec9bce9fa1086324)) + - Prepare changelogs prior to release ([`30a1a71`](https://github.com/Byron/gitoxide/commit/30a1a71f36f24faac0e0b362ffdfedea7f9cdbf1)) + - Merge branch 'utkarshgupta137/main' ([`74cb5ee`](https://github.com/Byron/gitoxide/commit/74cb5ee03d7a5fbba312c0a5c782489a6fc039a7)) + - Use `home` in `env::home_dir()` ([`13edfe9`](https://github.com/Byron/gitoxide/commit/13edfe96696636c30040ec81ebc4e235ac689429)) + - Release gix-utils v0.1.0, gix-hash v0.11.0, gix-date v0.5.0, gix-features v0.29.0, gix-actor v0.20.0, gix-object v0.29.0, gix-archive v0.1.0, gix-fs v0.1.0, safety bump 25 crates ([`8dbd0a6`](https://github.com/Byron/gitoxide/commit/8dbd0a60557a85acfa231800a058cbac0271a8cf)) + - Merge branch 'main' into dev ([`cdef398`](https://github.com/Byron/gitoxide/commit/cdef398c4a3bd01baf0be2c27a3f77a400172b0d)) + - Rename the serde1 feature to serde ([`19338d9`](https://github.com/Byron/gitoxide/commit/19338d934b6712b7d6bd3fa3b2e4189bf7e6c8a1)) + - Merge branch 'main' into dev ([`23ee47f`](https://github.com/Byron/gitoxide/commit/23ee47fb24c197f8437bd426544b2aa74e005bdc)) + - Merge branch 'worktree-stack' ([`3d47919`](https://github.com/Byron/gitoxide/commit/3d47919c1a2f83fc7c1fd7ae590d098057a22626)) + - Use `gix-path` for obtaining some shared directories as base for path generation. ([`da9009f`](https://github.com/Byron/gitoxide/commit/da9009f807acfe50000724589853a112fc5ab9a4)) + - Merge branch 'patch-1' ([`d0052c1`](https://github.com/Byron/gitoxide/commit/d0052c13cabcde8058177d2439053b50ea5adbfc)) + - Upgrade various dependencies ([`f9ad837`](https://github.com/Byron/gitoxide/commit/f9ad83712deb53e0f8ac2be3cd35df8edcc5253c)) + - Upgrade serial-test to v2 ([`6932017`](https://github.com/Byron/gitoxide/commit/69320174685e72940cd0fe600c94abb948a62bdd)) +</details> + +## 0.20.1 (2023-03-30) + +### Documentation + + - <csr-id-02c4659984fa6423bc76cc4980a143edaba8ace0/> fix minor typos + - <csr-id-cc48c35d0ecf35824910c5b6ecc62fe9b2aff1b5/> fix minor typos + +### Bug Fixes + + - <csr-id-d1bd513f27e17787eb223f7b0521f954c518153e/> $HOME detection on windows + +### Commit Statistics + +<csr-read-only-do-not-edit/> + + - 8 commits contributed to the release over the course of 3 calendar days. + - 4 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-path v0.7.3, gix-config-value v0.10.2, gix-config v0.20.1, gix-discover v0.16.2, gix-index v0.15.1, gix-odb v0.43.1, gix-packetline v0.15.1, gix-protocol v0.30.2, gix-worktree v0.15.2, gix v0.43.1 ([`38eed1d`](https://github.com/Byron/gitoxide/commit/38eed1d06e7cbb8fbcd54b2cad3163ca45e0baf1)) + - Merge branch 'pascalkuthe/main' ([`d47cebe`](https://github.com/Byron/gitoxide/commit/d47cebe3b23080c45829cb307b867220e3af20db)) + - Refactor ([`d1e5e12`](https://github.com/Byron/gitoxide/commit/d1e5e12d54f79c030325860838c1cfadac1a7ac5)) + - $HOME detection on windows ([`d1bd513`](https://github.com/Byron/gitoxide/commit/d1bd513f27e17787eb223f7b0521f954c518153e)) + - Fix minor typos ([`02c4659`](https://github.com/Byron/gitoxide/commit/02c4659984fa6423bc76cc4980a143edaba8ace0)) + - Fix minor typos ([`cc48c35`](https://github.com/Byron/gitoxide/commit/cc48c35d0ecf35824910c5b6ecc62fe9b2aff1b5)) + - Release gix-ref v0.27.2 ([`e965b18`](https://github.com/Byron/gitoxide/commit/e965b18aedcf13ec4538bc7bc700269a56ca615e)) + - Be sure to clear the buffer after an intermediate read error happened and we ignore it. ([`877951a`](https://github.com/Byron/gitoxide/commit/877951aa0009ab5e2a814c95f4c5d3662305cb27)) +</details> + +## 0.20.0 (2023-03-26) + +### Bug Fixes + + - <csr-id-603776ecf487ef087d25774d74e49465177aa370/> binary config output parsing can now deal with quotes on windows. + Previously we would return paths that contained quotes. + Note that we don't properly unquote C-style strings + (which this is: https://github.com/git/git/blob/d9d677b2d8cc5f70499db04e633ba7a400f64cbf/builtin/config.c#L197) + thinking that the git-binary configuration paths are well-known and don't need the complete decoding. + If so, this is already implemented in `gix_quote::ansi_c::undo()`. + +### New Features (BREAKING) + + - <csr-id-e55f4ee230ed3164df5145c7a2b212464bb9db99/> allow to ignore IO errors when reading configuration files. + Sometimes, IO errors can occour consistently when reading from certain + paths (on Windows, really), and it should be possible to not only see + which path that is but also to ignore them entirely. + + Now IO errors contain the path of the failed configuration file. + There is also a new option flag to ignore errors (off by default). + +### Commit Statistics + +<csr-read-only-do-not-edit/> + + - 8 commits contributed to the release over the course of 15 calendar days. + - 15 days passed between releases. + - 2 commits were understood as [conventional](https://www.conventionalcommits.org). + - 1 unique issue was worked on: [#790](https://github.com/Byron/gitoxide/issues/790) + +### Commit Details + +<csr-read-only-do-not-edit/> + +<details><summary>view details</summary> + + * **[#790](https://github.com/Byron/gitoxide/issues/790)** + - Binary config output parsing can now deal with quotes on windows. ([`603776e`](https://github.com/Byron/gitoxide/commit/603776ecf487ef087d25774d74e49465177aa370)) + - Allow to ignore IO errors when reading configuration files. ([`e55f4ee`](https://github.com/Byron/gitoxide/commit/e55f4ee230ed3164df5145c7a2b212464bb9db99)) + * **Uncategorized** + - Release gix-tempfile v5.0.2, gix-validate v0.7.4, gix-config v0.20.0, gix-prompt v0.3.3, gix-diff v0.28.1, gix-discover v0.16.1, gix-pack v0.33.2, gix-transport v0.29.1, gix-protocol v0.30.1, gix-revision v0.12.1, gix-worktree v0.15.1, gix v0.43.0, safety bump gix v0.43.0 ([`5dc1f9f`](https://github.com/Byron/gitoxide/commit/5dc1f9f2bcb8b3e147115fcb6f76558e8f48ffef)) + - Prepare changelogs prior to release ([`3016a28`](https://github.com/Byron/gitoxide/commit/3016a285f566bdfe7de2774fa6f2254c1b1a2c51)) + - Merge branch 'fix-790' ([`ee36e5b`](https://github.com/Byron/gitoxide/commit/ee36e5bb985e9ad90bc382cdd051a8b5295ca18c)) + - Less dependencies for tests (via `serial_test` no default features) ([`8f2accd`](https://github.com/Byron/gitoxide/commit/8f2accdf738def9aa4abdf08fc299d0e9807bc3e)) + - Correct more typos with `typos` tool. ([`2321eb9`](https://github.com/Byron/gitoxide/commit/2321eb971c2b89551506e2016a3495fafd15b47d)) + - Merge branch 'fix-cred-helper' ([`01277a6`](https://github.com/Byron/gitoxide/commit/01277a681e4997896e04567490c572b5af606f35)) +</details> + +## 0.19.0 (2023-03-10) A maintenance release without user-facing changes. @@ -14,6 +173,30 @@ A maintenance release without user-facing changes. <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-tempfile v5.0.0, gix-lock v5.0.0, gix-ref v0.27.0, gix-config v0.19.0, gix-url v0.16.0, gix-credentials v0.12.0, gix-discover v0.16.0, gix-index v0.15.0, gix-pack v0.33.0, gix-odb v0.43.0, gix-transport v0.28.0, gix-protocol v0.29.0, gix-worktree v0.15.0, gix v0.41.0, safety bump 12 crates ([`29a0870`](https://github.com/Byron/gitoxide/commit/29a087043d1feb2f127b065341c8028d0bd0301e)) + - Prepare changelogs prior to release ([`e06f5f5`](https://github.com/Byron/gitoxide/commit/e06f5f523e83f4da390eddbebcb9a2d58674587b)) +</details> + +## 0.18.0 (2023-03-04) + +A maintenance release without user-facing changes. + +### Commit Statistics + +<csr-read-only-do-not-edit/> + + - 3 commits contributed to the release. - 3 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 +208,7 @@ A maintenance release without user-facing changes. <details><summary>view details</summary> * **Uncategorized** + - Release gix-attributes v0.10.0, gix-ref v0.26.0, gix-config v0.18.0, gix-url v0.15.0, gix-credentials v0.11.0, gix-discover v0.15.0, gix-index v0.14.0, gix-mailmap v0.11.0, gix-odb v0.42.0, gix-transport v0.27.0, gix-protocol v0.28.0, gix-revision v0.12.0, gix-refspec v0.9.0, gix-worktree v0.14.0, gix v0.39.0 ([`93e75fe`](https://github.com/Byron/gitoxide/commit/93e75fed454ed8b342231bde4638db90e407ce52)) - Prepare changelogs prior to release ([`895e482`](https://github.com/Byron/gitoxide/commit/895e482badf01e953bb9144001eebd5e1b1c4d84)) - Release gix-features v0.28.0, gix-actor v0.19.0, gix-object v0.28.0, gix-diff v0.28.0, gix-traverse v0.24.0, gix-pack v0.32.0, safety bump 20 crates ([`0f411e9`](https://github.com/Byron/gitoxide/commit/0f411e93ec812592bb9d3a52b751399dd86f76f7)) </details> @@ -2140,7 +2324,7 @@ This is a maintenance release without functional changes. - _None._ <csr-unknown> -lenfrom_envopenlenfrom_envopenlenfrom_envopenlenfrom_envopenlenfrom_envopenlenfrom_envopenlenfrom_envopenlenfrom_envopenlenfrom_envopenlenfrom_envopenlenfrom_envopenlenfrom_envopenlenfrom_envopen<csr-unknown/> +lenfrom_envopenlenfrom_envopenlenfrom_envopenlenfrom_envopenlenfrom_envopenlenfrom_envopenlenfrom_envopenlenfrom_envopenlenfrom_envopenlenfrom_envopenlenfrom_envopenlenfrom_envopenlenfrom_envopenlenfrom_envopenlenfrom_envopenlenfrom_envopenlenfrom_envopenlenfrom_envopenlenfrom_envopenlenfrom_envopenlenfrom_envopenlenfrom_envopen<csr-unknown/> <csr-unknown/> ## v0.1.1 (2021-05-09) diff --git a/vendor/gix-config/Cargo.toml b/vendor/gix-config/Cargo.toml index a688807f8..8fe07e437 100644 --- a/vendor/gix-config/Cargo.toml +++ b/vendor/gix-config/Cargo.toml @@ -13,7 +13,7 @@ edition = "2021" rust-version = "1.64" name = "gix-config" -version = "0.18.0" +version = "0.22.0" authors = ["Edward Shen <code@eddie.sh>"] include = [ "src/**/*", @@ -60,22 +60,25 @@ version = "0.2.0" optional = true [dependencies.gix-config-value] -version = "^0.10.1" +version = "^0.12.0" [dependencies.gix-features] -version = "^0.28.0" +version = "^0.29.0" [dependencies.gix-glob] -version = "^0.5.5" +version = "^0.7.0" [dependencies.gix-path] -version = "^0.7.2" +version = "^0.8.0" [dependencies.gix-ref] -version = "^0.26.0" +version = "^0.29.0" [dependencies.gix-sec] -version = "^0.6.2" +version = "^0.8.0" + +[dependencies.log] +version = "0.4.17" [dependencies.memchr] version = "2" @@ -101,17 +104,17 @@ version = "1.9.0" version = "1.0.26" [dependencies.unicode-bom] -version = "1.1.4" +version = "2.0.2" [dev-dependencies.criterion] version = "0.4.0" [features] -serde1 = [ - "serde", +serde = [ + "dep:serde", "bstr/serde", - "gix-sec/serde1", - "gix-ref/serde1", - "gix-glob/serde1", - "gix-config-value/serde1", + "gix-sec/serde", + "gix-ref/serde", + "gix-glob/serde", + "gix-config-value/serde", ] diff --git a/vendor/gix-config/src/file/access/raw.rs b/vendor/gix-config/src/file/access/raw.rs index 46f1fb006..44b318f24 100644 --- a/vendor/gix-config/src/file/access/raw.rs +++ b/vendor/gix-config/src/file/access/raw.rs @@ -136,7 +136,7 @@ impl<'event> File<'event> { /// ain order of occurrence. /// /// The ordering means that the last of the returned values is the one that would be the - /// value used in the single-value case.nd key. + /// value used in the single-value case.and key. /// /// # Examples /// diff --git a/vendor/gix-config/src/file/init/comfort.rs b/vendor/gix-config/src/file/init/comfort.rs index ffe859a1a..aa77fb9c0 100644 --- a/vendor/gix-config/src/file/init/comfort.rs +++ b/vendor/gix-config/src/file/init/comfort.rs @@ -1,5 +1,3 @@ -use std::path::PathBuf; - use crate::{ file::{init, Metadata}, path, source, File, Source, @@ -30,7 +28,7 @@ impl File<'static> { .flat_map(|kind| kind.sources()) .filter_map(|source| { let path = source - .storage_location(&mut |name| std::env::var_os(name)) + .storage_location(&mut gix_path::env::var) .and_then(|p| p.is_file().then_some(p)) .map(|p| p.into_owned()); @@ -43,7 +41,7 @@ impl File<'static> { .into() }); - let home = std::env::var("HOME").ok().map(PathBuf::from); + let home = gix_path::env::home_dir(); let options = init::Options { includes: init::includes::Options::follow_without_conditional(home.as_deref()), ..Default::default() @@ -59,7 +57,7 @@ impl File<'static> { /// /// [`gix-config`'s documentation]: https://git-scm.com/docs/gix-config#Documentation/gix-config.txt-GITCONFIGCOUNT pub fn from_environment_overrides() -> Result<File<'static>, init::from_env::Error> { - let home = std::env::var("HOME").ok().map(PathBuf::from); + let home = gix_path::env::home_dir(); let options = init::Options { includes: init::includes::Options::follow_without_conditional(home.as_deref()), ..Default::default() @@ -88,7 +86,7 @@ impl File<'static> { let mut path = dir.into(); path.push( source - .storage_location(&mut |n| std::env::var_os(n)) + .storage_location(&mut gix_path::env::var) .expect("location available for local"), ); let local = Self::from_path_no_includes(&path, source)?; @@ -101,7 +99,7 @@ impl File<'static> { let source = Source::Worktree; let path = git_dir.join( source - .storage_location(&mut |n| std::env::var_os(n)) + .storage_location(&mut gix_path::env::var) .expect("location available for worktree"), ); Self::from_path_no_includes(path, source) @@ -110,7 +108,7 @@ impl File<'static> { } .transpose()?; - let home = std::env::var("HOME").ok().map(PathBuf::from); + let home = gix_path::env::home_dir(); let options = init::Options { includes: init::includes::Options::follow( path::interpolate::Context { @@ -122,7 +120,7 @@ impl File<'static> { branch_name: None, }, ), - lossy: false, + ..Default::default() }; let mut globals = Self::from_globals()?; diff --git a/vendor/gix-config/src/file/init/from_paths.rs b/vendor/gix-config/src/file/init/from_paths.rs index 5d671b69e..73737075e 100644 --- a/vendor/gix-config/src/file/init/from_paths.rs +++ b/vendor/gix-config/src/file/init/from_paths.rs @@ -9,8 +9,11 @@ use crate::{ #[derive(Debug, thiserror::Error)] #[allow(missing_docs)] pub enum Error { - #[error(transparent)] - Io(#[from] std::io::Error), + #[error("The configuration file at \"{}\" could not be read", path.display())] + Io { + source: std::io::Error, + path: std::path::PathBuf, + }, #[error(transparent)] Init(#[from] init::Error), } @@ -22,10 +25,22 @@ impl File<'static> { /// Note that the path will be checked for ownership to derive trust. pub fn from_path_no_includes(path: impl Into<std::path::PathBuf>, source: crate::Source) -> Result<Self, Error> { let path = path.into(); - let trust = gix_sec::Trust::from_path_ownership(&path)?; + let trust = match gix_sec::Trust::from_path_ownership(&path) { + Ok(t) => t, + Err(err) => return Err(Error::Io { source: err, path }), + }; let mut buf = Vec::new(); - std::io::copy(&mut std::fs::File::open(&path)?, &mut buf)?; + match std::io::copy( + &mut match std::fs::File::open(&path) { + Ok(f) => f, + Err(err) => return Err(Error::Io { source: err, path }), + }, + &mut buf, + ) { + Ok(_) => {} + Err(err) => return Err(Error::Io { source: err, path }), + } Ok(File::from_bytes_owned( &mut buf, @@ -69,14 +84,38 @@ impl File<'static> { } buf.clear(); - std::io::copy( + match std::io::copy( &mut match std::fs::File::open(&path) { Ok(f) => f, Err(err) if !err_on_non_existing_paths && err.kind() == std::io::ErrorKind::NotFound => continue, - Err(err) => return Err(err.into()), + Err(err) => { + let err = Error::Io { source: err, path }; + if options.ignore_io_errors { + log::warn!("ignoring: {err:#?}"); + continue; + } else { + return Err(err); + } + } }, buf, - )?; + ) { + Ok(_) => {} + Err(err) => { + if options.ignore_io_errors { + log::warn!( + "ignoring: {:#?}", + Error::Io { + source: err, + path: path.clone() + } + ); + buf.clear(); + } else { + return Err(Error::Io { source: err, path }); + } + } + }; meta.path = Some(path); let config = Self::from_bytes_owned(buf, meta, options)?; diff --git a/vendor/gix-config/src/file/init/types.rs b/vendor/gix-config/src/file/init/types.rs index fcb17c0ca..952d1910b 100644 --- a/vendor/gix-config/src/file/init/types.rs +++ b/vendor/gix-config/src/file/init/types.rs @@ -22,6 +22,10 @@ pub struct Options<'a> { /// Note that doing so will degenerate [`write_to()`][crate::File::write_to()] and strip it off its comments /// and additional whitespace entirely, but will otherwise be a valid configuration file. pub lossy: bool, + /// If true, any IO error happening when reading a configuration file will be ignored. + /// + /// That way it's possible to pass multiple files and read as many as possible, to have 'something' instead of nothing. + pub ignore_io_errors: bool, } impl Options<'_> { diff --git a/vendor/gix-config/src/file/section/body.rs b/vendor/gix-config/src/file/section/body.rs index e1a53efd9..ad196d133 100644 --- a/vendor/gix-config/src/file/section/body.rs +++ b/vendor/gix-config/src/file/section/body.rs @@ -121,7 +121,7 @@ impl<'event> Body<'event> { &self.0 } - /// Returns the the range containing the value events for the `key`, with value range being `None` if there is no key-value separator + /// Returns the range containing the value events for the `key`, with value range being `None` if there is no key-value separator /// and only a 'fake' Value event with an empty string in side. /// If the value is not found, `None` is returned. pub(crate) fn key_and_value_range_by(&self, key: &Key<'_>) -> Option<(Range<usize>, Option<Range<usize>>)> { diff --git a/vendor/gix-config/src/parse/events.rs b/vendor/gix-config/src/parse/events.rs index 62f621b52..24bb45253 100644 --- a/vendor/gix-config/src/parse/events.rs +++ b/vendor/gix-config/src/parse/events.rs @@ -51,7 +51,7 @@ pub type FrontMatterEvents<'a> = SmallVec<[Event<'a>; 8]>; /// - Only equal signs (optionally padded by spaces) are valid name/value /// delimiters. /// -/// Note that that things such as case-sensitivity or duplicate sections are +/// Note that things such as case-sensitivity or duplicate sections are /// _not_ handled. This parser is a low level _syntactic_ interpreter /// and higher level wrappers around this parser, which may /// or may not be zero-copy, should handle _semantic_ values. This also means diff --git a/vendor/gix-config/src/parse/mod.rs b/vendor/gix-config/src/parse/mod.rs index 50363873c..e943a22b4 100644 --- a/vendor/gix-config/src/parse/mod.rs +++ b/vendor/gix-config/src/parse/mod.rs @@ -57,7 +57,7 @@ pub enum Event<'a> { /// A completed value. This may be any single-line string, including the empty string /// if an implicit boolean value is used. /// Note that these values may contain spaces and any special character. This value is - /// also unprocessed, so it it may contain double quotes that should be + /// also unprocessed, so it may contain double quotes that should be /// [normalized][crate::value::normalize()] before interpretation. Value(Cow<'a, BStr>), /// Represents any token used to signify a newline character. On Unix diff --git a/vendor/gix-config/src/source.rs b/vendor/gix-config/src/source.rs index b1991e6b4..d8ca60db4 100644 --- a/vendor/gix-config/src/source.rs +++ b/vendor/gix-config/src/source.rs @@ -55,7 +55,7 @@ impl Source { /// Returns the location at which a file of this type would be stored, or `None` if /// there is no notion of persistent storage for this source, with `env_var` to obtain environment variables. /// Note that the location can be relative for repository-local sources like `Local` and `Worktree`, - /// and the caller has to known which base it it relative to, namely the `common_dir` in the `Local` case + /// and the caller has to known which base it is relative to, namely the `common_dir` in the `Local` case /// and the `git_dir` in the `Worktree` case. /// Be aware that depending on environment overrides, multiple scopes might return the same path, which should /// only be loaded once nonetheless. @@ -65,29 +65,19 @@ impl Source { pub fn storage_location(self, env_var: &mut dyn FnMut(&str) -> Option<OsString>) -> Option<Cow<'static, Path>> { use Source::*; match self { - GitInstallation => git::install_config_path().map(gix_path::from_bstr), - System => env_var("GIT_CONFIG_NO_SYSTEM") - .is_none() - .then(|| PathBuf::from(env_var("GIT_CONFIG_SYSTEM").unwrap_or_else(|| "/etc/gitconfig".into())).into()), + GitInstallation => gix_path::env::installation_config().map(Into::into), + System => { + if env_var("GIT_CONFIG_NO_SYSTEM").is_some() { + None + } else { + env_var("GIT_CONFIG_SYSTEM") + .map(|p| Cow::Owned(p.into())) + .or_else(|| gix_path::env::system_prefix().map(|p| p.join("etc/gitconfig").into())) + } + } Git => match env_var("GIT_CONFIG_GLOBAL") { Some(global_override) => Some(PathBuf::from(global_override).into()), - None => env_var("XDG_CONFIG_HOME") - .map(|home| { - let mut p = PathBuf::from(home); - p.push("git"); - p.push("config"); - p - }) - .or_else(|| { - env_var("HOME").map(|home| { - let mut p = PathBuf::from(home); - p.push(".config"); - p.push("git"); - p.push("config"); - p - }) - }) - .map(Cow::Owned), + None => gix_path::env::xdg_config("config", env_var).map(Cow::Owned), }, User => env_var("GIT_CONFIG_GLOBAL") .map(|global_override| PathBuf::from(global_override).into()) @@ -104,60 +94,3 @@ impl Source { } } } - -/// Environment information involving the `git` program itself. -mod git { - use std::process::{Command, Stdio}; - - use bstr::{BStr, BString, ByteSlice}; - - /// Returns the file that contains git configuration coming with the installation of the `git` file in the current `PATH`, or `None` - /// if no `git` executable was found or there were other errors during execution. - pub fn install_config_path() -> Option<&'static BStr> { - static PATH: once_cell::sync::Lazy<Option<BString>> = once_cell::sync::Lazy::new(|| { - let mut cmd = Command::new(if cfg!(windows) { "git.exe" } else { "git" }); - cmd.args(["config", "-l", "--show-origin"]) - .stdin(Stdio::null()) - .stderr(Stdio::null()); - first_file_from_config_with_origin(cmd.output().ok()?.stdout.as_slice().into()).map(ToOwned::to_owned) - }); - PATH.as_ref().map(|b| b.as_ref()) - } - - fn first_file_from_config_with_origin(source: &BStr) -> Option<&BStr> { - let file = source.strip_prefix(b"file:")?; - let end_pos = file.find_byte(b'\t')?; - file[..end_pos].as_bstr().into() - } - - #[cfg(test)] - mod tests { - #[test] - fn first_file_from_config_with_origin() { - let macos = "file:/Applications/Xcode.app/Contents/Developer/usr/share/git-core/gitconfig credential.helper=osxkeychain\nfile:/Users/byron/.gitconfig push.default=simple\n"; - let win_msys = - "file:C:/git-sdk-64/etc/gitconfig core.symlinks=false\r\nfile:C:/git-sdk-64/etc/gitconfig core.autocrlf=true"; - let win_cmd = "file:C:/Program Files/Git/etc/gitconfig diff.astextplain.textconv=astextplain\r\nfile:C:/Program Files/Git/etc/gitconfig filter.lfs.clean=gix-lfs clean -- %f\r\n"; - let linux = "file:/home/parallels/.gitconfig core.excludesfile=~/.gitignore\n"; - let bogus = "something unexpected"; - let empty = ""; - - for (source, expected) in [ - ( - macos, - Some("/Applications/Xcode.app/Contents/Developer/usr/share/git-core/gitconfig"), - ), - (win_msys, Some("C:/git-sdk-64/etc/gitconfig")), - (win_cmd, Some("C:/Program Files/Git/etc/gitconfig")), - (linux, Some("/home/parallels/.gitconfig")), - (bogus, None), - (empty, None), - ] { - assert_eq!( - super::first_file_from_config_with_origin(source.into()), - expected.map(Into::into) - ); - } - } - } -} |