summaryrefslogtreecommitdiffstats
path: root/vendor/gix-discover
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-30 03:57:31 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-30 03:57:31 +0000
commitdc0db358abe19481e475e10c32149b53370f1a1c (patch)
treeab8ce99c4b255ce46f99ef402c27916055b899ee /vendor/gix-discover
parentReleasing progress-linux version 1.71.1+dfsg1-2~progress7.99u1. (diff)
downloadrustc-dc0db358abe19481e475e10c32149b53370f1a1c.tar.xz
rustc-dc0db358abe19481e475e10c32149b53370f1a1c.zip
Merging upstream version 1.72.1+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/gix-discover')
-rw-r--r--vendor/gix-discover/.cargo-checksum.json2
-rw-r--r--vendor/gix-discover/CHANGELOG.md66
-rw-r--r--vendor/gix-discover/Cargo.toml11
-rw-r--r--vendor/gix-discover/LICENSE-APACHE191
-rw-r--r--vendor/gix-discover/LICENSE-MIT21
-rw-r--r--vendor/gix-discover/src/is.rs11
-rw-r--r--vendor/gix-discover/src/upwards/mod.rs30
-rw-r--r--vendor/gix-discover/src/upwards/types.rs2
8 files changed, 309 insertions, 25 deletions
diff --git a/vendor/gix-discover/.cargo-checksum.json b/vendor/gix-discover/.cargo-checksum.json
index b8dcb60f7..ba6bd0c76 100644
--- a/vendor/gix-discover/.cargo-checksum.json
+++ b/vendor/gix-discover/.cargo-checksum.json
@@ -1 +1 @@
-{"files":{"CHANGELOG.md":"dc88835166aa9794ff3c6858a8a9a4ab653de752c7150265bbd47a5cc9ab9e3a","Cargo.toml":"9d81dfd6b9799486200291fecc877c1ef247f305ac70affc371bb20985ef28e0","src/is.rs":"78de018da25edab9e2ddac08cb3e4c9f256c4c373b1c0ba98de3ac4eb594c777","src/lib.rs":"7625dd1d6f3292c03948a3c69fe31b20aab98deb41a02d4a7fd727c6dbf30431","src/parse.rs":"04a95307b39485f8ecd7b23c353ce4c0ba46dbe854f61fc037c7dff82f0d412b","src/path.rs":"965384fe931376235d7c2880c96ea9d92b6e3466073bc3e56d4ee83fe758934a","src/repository.rs":"d578255d18ed286cbf07bd965bae66f69c6f515926d6900b259482ecd9c1f812","src/upwards/mod.rs":"53d946923255fd71c55fb3cbf5b0f6ff3b6f492ebc97acc2229f8bbbea75d91d","src/upwards/types.rs":"9068a525bc5c19034c1f0c14cfbbf2b8034ada10a4b857cfe69bc5e8d9de3541","src/upwards/util.rs":"ec03f84d0d84038c79c2f586aa6ceccfa6ae9e60e72cddb80cdf9c357011f160"},"package":"5012710ebdecf6193c6866d6409a3b702a4aa0d78c605bc343590b44ab9962a1"} \ No newline at end of file
+{"files":{"CHANGELOG.md":"7bf70d4fe30927acb8f5b83c5afc017a51998272fe0ba8e11ba030ad145f5b05","Cargo.toml":"44122e92cd218e6bfec1dba0c4474caacc5ce6669f570d704e9f3dd7a066db41","LICENSE-APACHE":"cb4780590812826851ba250f90bed0ed19506ec98f6865a0e2e20bbf62391ff9","LICENSE-MIT":"49df47913ab2beafe8dc45607877ae64198bf0eee64aaad3e82ed9e4d27424e8","src/is.rs":"8e49c405b696a91d461f3067b282cda1c57142abd9041514e0b53f4ba4f00087","src/lib.rs":"7625dd1d6f3292c03948a3c69fe31b20aab98deb41a02d4a7fd727c6dbf30431","src/parse.rs":"04a95307b39485f8ecd7b23c353ce4c0ba46dbe854f61fc037c7dff82f0d412b","src/path.rs":"965384fe931376235d7c2880c96ea9d92b6e3466073bc3e56d4ee83fe758934a","src/repository.rs":"d578255d18ed286cbf07bd965bae66f69c6f515926d6900b259482ecd9c1f812","src/upwards/mod.rs":"206a8766fc292c1f31bb16c5c24367f2f7bafff0904c2bc2efef151809880537","src/upwards/types.rs":"36ed96a97306f036e320e2e518467ff031acd25fc04fd1be984f69f7600c240c","src/upwards/util.rs":"ec03f84d0d84038c79c2f586aa6ceccfa6ae9e60e72cddb80cdf9c357011f160"},"package":"aba9c6c0d1f2b2efe65581de73de4305004612d49c83773e783202a7ef204f46"} \ No newline at end of file
diff --git a/vendor/gix-discover/CHANGELOG.md b/vendor/gix-discover/CHANGELOG.md
index 0726ea080..7bf12fa43 100644
--- a/vendor/gix-discover/CHANGELOG.md
+++ b/vendor/gix-discover/CHANGELOG.md
@@ -5,6 +5,69 @@ 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.19.0 (2023-06-06)
+
+### Bug Fixes
+
+ - <csr-id-96267708958ead2646aae8766a50fa060739003c/> make it possible to discover a bare repository with an index file.
+ It's perfectly viable and possible to manually create an index in a bare
+ repository. When that happens, previously it wasn't possible to open a
+ repository on it. This is now fixed.
+
+### Commit Statistics
+
+<csr-read-only-do-not-edit/>
+
+ - 11 commits contributed to the release over the course of 13 calendar days.
+ - 37 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**
+ - `just fmt` ([`ffc1276`](https://github.com/Byron/gitoxide/commit/ffc1276e0c991ac33ce842f5dca0b45ac69680c0))
+ - 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))
+ - Merge branch 'auto-clippy' ([`dbf8aa1`](https://github.com/Byron/gitoxide/commit/dbf8aa19d19109195d0274928eae4b94f248cd88))
+ - Autofix map-or-unwrap clippy lint (and manual fix what was left) ([`2087032`](https://github.com/Byron/gitoxide/commit/2087032b5956dcd82bce6ac57e530e8724b57f17))
+ - Merge branch 'main' into auto-clippy ([`3ef5c90`](https://github.com/Byron/gitoxide/commit/3ef5c90aebce23385815f1df674c1d28d58b4b0d))
+ - Merge branch 'blinxen/main' ([`9375cd7`](https://github.com/Byron/gitoxide/commit/9375cd75b01aa22a0e2eed6305fe45fabfd6c1ac))
+ - Include custom clippy settings ([`b057500`](https://github.com/Byron/gitoxide/commit/b057500dd3e6b75be3ebcd258cda0b946bedd9e1))
+ - Include license files in all crates ([`facaaf6`](https://github.com/Byron/gitoxide/commit/facaaf633f01c857dcf2572c6dbe0a92b7105c1c))
+ - Make it possible to discover a bare repository with an index file. ([`9626770`](https://github.com/Byron/gitoxide/commit/96267708958ead2646aae8766a50fa060739003c))
+</details>
+
+## 0.18.1 (2023-04-29)
+
+A maintenance release without user-facing changes.
+
+### Commit Statistics
+
+<csr-read-only-do-not-edit/>
+
+ - 3 commits contributed to the release.
+ - 2 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-discover v0.18.1, gix-worktree v0.17.1, gix-testtools v0.12.0 ([`f7b6c6f`](https://github.com/Byron/gitoxide/commit/f7b6c6f27c090cbc584fbd3f5403da5ac1a9ff02))
+ - Prepare changelogs prior to release of gix-testtools ([`fc45f1b`](https://github.com/Byron/gitoxide/commit/fc45f1b417bf545d4a0a105c40b37f92c24decad))
+ - Release gix-ref v0.29.1 ([`13e01f5`](https://github.com/Byron/gitoxide/commit/13e01f5742ed2121f00f4b16c1df0cce5e7708ef))
+</details>
+
## 0.18.0 (2023-04-27)
A maintenance release without user-facing changes.
@@ -13,7 +76,7 @@ A maintenance release without user-facing changes.
<csr-read-only-do-not-edit/>
- - 2 commits contributed to the release.
+ - 3 commits contributed to the release.
- 0 commits were understood as [conventional](https://www.conventionalcommits.org).
- 0 issues like '(#ID)' were seen in commit messages
@@ -24,6 +87,7 @@ A maintenance release without user-facing changes.
<details><summary>view details</summary>
* **Uncategorized**
+ - Release gix-path v0.8.0, gix-glob v0.7.0, gix-attributes v0.12.0, gix-config-value v0.12.0, gix-ref v0.29.0, gix-sec v0.8.0, gix-config v0.22.0, gix-prompt v0.5.0, gix-url v0.18.0, gix-credentials v0.14.0, gix-discover v0.18.0, gix-ignore v0.2.0, gix-pack v0.35.0, gix-odb v0.45.0, gix-transport v0.31.0, gix-protocol v0.32.0, gix-refspec v0.10.1, gix-worktree v0.17.0, gix v0.44.1 ([`7ebc9f7`](https://github.com/Byron/gitoxide/commit/7ebc9f734ec4371dd27daa568c0244185bb49eb5))
- 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>
diff --git a/vendor/gix-discover/Cargo.toml b/vendor/gix-discover/Cargo.toml
index 050a5e8f3..32d3a117e 100644
--- a/vendor/gix-discover/Cargo.toml
+++ b/vendor/gix-discover/Cargo.toml
@@ -13,10 +13,11 @@
edition = "2021"
rust-version = "1.64"
name = "gix-discover"
-version = "0.18.0"
+version = "0.19.0"
authors = ["Sebastian Thiel <sebastian.thiel@icloud.com>"]
include = [
"src/**/*",
+ "LICENSE-*",
"CHANGELOG.md",
]
description = "Discover git repositories and check if a directory is a git repository"
@@ -35,16 +36,16 @@ features = [
default-features = false
[dependencies.gix-hash]
-version = "^0.11.1"
+version = "^0.11.2"
[dependencies.gix-path]
-version = "^0.8.0"
+version = "^0.8.1"
[dependencies.gix-ref]
-version = "^0.29.0"
+version = "^0.30.0"
[dependencies.gix-sec]
-version = "^0.8.0"
+version = "^0.8.1"
[dependencies.thiserror]
version = "1.0.26"
diff --git a/vendor/gix-discover/LICENSE-APACHE b/vendor/gix-discover/LICENSE-APACHE
new file mode 100644
index 000000000..a51f59a06
--- /dev/null
+++ b/vendor/gix-discover/LICENSE-APACHE
@@ -0,0 +1,191 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ Copyright 2018-2021 Sebastian Thiel, and [contributors](https://github.com/byron/gitoxide/contributors)
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/vendor/gix-discover/LICENSE-MIT b/vendor/gix-discover/LICENSE-MIT
new file mode 100644
index 000000000..b58e818f1
--- /dev/null
+++ b/vendor/gix-discover/LICENSE-MIT
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2018-2021 Sebastian Thiel, and [contributors](https://github.com/byron/gitoxide/contributors).
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/vendor/gix-discover/src/is.rs b/vendor/gix-discover/src/is.rs
index e5d554452..ec504a5ee 100644
--- a/vendor/gix-discover/src/is.rs
+++ b/vendor/gix-discover/src/is.rs
@@ -143,9 +143,16 @@ pub(crate) fn git_with_metadata(
git_dir: dot_git.into_owned(),
},
Kind::MaybeRepo => {
- if bare(git_dir) || git_dir.extension() == Some(OsStr::new("git")) {
+ let conformed_git_dir = if git_dir == Path::new(".") {
+ gix_path::realpath(git_dir)
+ .map(Cow::Owned)
+ .unwrap_or(Cow::Borrowed(git_dir))
+ } else {
+ Cow::Borrowed(git_dir)
+ };
+ if bare(conformed_git_dir.as_ref()) || conformed_git_dir.extension() == Some(OsStr::new("git")) {
crate::repository::Kind::Bare
- } else if submodule_git_dir(git_dir) {
+ } else if submodule_git_dir(conformed_git_dir.as_ref()) {
crate::repository::Kind::SubmoduleGitDir
} else {
crate::repository::Kind::WorkTree { linked_git_dir: None }
diff --git a/vendor/gix-discover/src/upwards/mod.rs b/vendor/gix-discover/src/upwards/mod.rs
index 87e6a18b4..c3d73ad32 100644
--- a/vendor/gix-discover/src/upwards/mod.rs
+++ b/vendor/gix-discover/src/upwards/mod.rs
@@ -4,8 +4,7 @@ pub use types::{Error, Options};
mod util;
pub(crate) mod function {
- use std::ffi::OsStr;
- use std::{borrow::Cow, path::Path};
+ use std::{borrow::Cow, ffi::OsStr, path::Path};
use gix_sec::Trust;
@@ -40,9 +39,7 @@ pub(crate) mod function {
// us the parent directory. (`Path::parent` just strips off the last
// path component, which means it will not do what you expect when
// working with paths paths that contain '..'.)
- let cwd = current_dir
- .map(|cwd| Ok(Cow::Borrowed(cwd)))
- .unwrap_or_else(|| std::env::current_dir().map(Cow::Owned))?;
+ let cwd = current_dir.map_or_else(|| std::env::current_dir().map(Cow::Owned), |cwd| Ok(Cow::Borrowed(cwd)))?;
let directory = directory.as_ref();
#[cfg(windows)]
let directory = dunce::simplified(directory);
@@ -95,15 +92,18 @@ pub(crate) mod function {
#[cfg(unix)]
if current_height != 0 && !cross_fs {
- let metadata = cursor_metadata.take().map(Ok).unwrap_or_else(|| {
- if cursor.as_os_str().is_empty() {
- Path::new(".")
- } else {
- cursor.as_ref()
- }
- .metadata()
- .map_err(|_| Error::InaccessibleDirectory { path: cursor.clone() })
- })?;
+ let metadata = cursor_metadata.take().map_or_else(
+ || {
+ if cursor.as_os_str().is_empty() {
+ Path::new(".")
+ } else {
+ cursor.as_ref()
+ }
+ .metadata()
+ .map_err(|_| Error::InaccessibleDirectory { path: cursor.clone() })
+ },
+ Ok,
+ )?;
if device_id(&metadata) != initial_device {
return Err(Error::NoGitRepositoryWithinFs {
@@ -169,7 +169,7 @@ pub(crate) mod function {
if dir_made_absolute
|| matches!(
cursor.components().next(),
- Some(std::path::Component::RootDir) | Some(std::path::Component::Prefix(_))
+ Some(std::path::Component::RootDir | std::path::Component::Prefix(_))
)
{
break Err(Error::NoGitRepository { path: dir.into_owned() });
diff --git a/vendor/gix-discover/src/upwards/types.rs b/vendor/gix-discover/src/upwards/types.rs
index d8fb19d49..370a3ae98 100644
--- a/vendor/gix-discover/src/upwards/types.rs
+++ b/vendor/gix-discover/src/upwards/types.rs
@@ -1,6 +1,6 @@
use std::{env, ffi::OsStr, path::PathBuf};
-/// The error returned by [gix_discover::upwards()][crate::upwards()].
+/// The error returned by [`gix_discover::upwards()`][crate::upwards()].
#[derive(Debug, thiserror::Error)]
#[allow(missing_docs)]
pub enum Error {