summaryrefslogtreecommitdiffstats
path: root/vendor/gix-config
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-18 02:49:50 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-18 02:49:50 +0000
commit9835e2ae736235810b4ea1c162ca5e65c547e770 (patch)
tree3fcebf40ed70e581d776a8a4c65923e8ec20e026 /vendor/gix-config
parentReleasing progress-linux version 1.70.0+dfsg2-1~progress7.99u1. (diff)
downloadrustc-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.json2
-rw-r--r--vendor/gix-config/CHANGELOG.md188
-rw-r--r--vendor/gix-config/Cargo.toml31
-rw-r--r--vendor/gix-config/src/file/access/raw.rs2
-rw-r--r--vendor/gix-config/src/file/init/comfort.rs16
-rw-r--r--vendor/gix-config/src/file/init/from_paths.rs53
-rw-r--r--vendor/gix-config/src/file/init/types.rs4
-rw-r--r--vendor/gix-config/src/file/section/body.rs2
-rw-r--r--vendor/gix-config/src/parse/events.rs2
-rw-r--r--vendor/gix-config/src/parse/mod.rs2
-rw-r--r--vendor/gix-config/src/source.rs91
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)
- );
- }
- }
- }
-}