diff options
Diffstat (limited to 'vendor/gix-discover/src/lib.rs')
-rw-r--r-- | vendor/gix-discover/src/lib.rs | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/vendor/gix-discover/src/lib.rs b/vendor/gix-discover/src/lib.rs new file mode 100644 index 000000000..b522ae1c2 --- /dev/null +++ b/vendor/gix-discover/src/lib.rs @@ -0,0 +1,52 @@ +//! Find git repositories or search them upwards from a starting point, or determine if a directory looks like a git repository. +//! +//! Note that detection methods are educated guesses using the presence of files, without looking too much into the details. +#![deny(missing_docs, rust_2018_idioms)] +#![forbid(unsafe_code)] + +/// The name of the `.git` directory. +pub const DOT_GIT_DIR: &str = ".git"; + +/// The name of the `modules` sub-directory within a `.git` directory for keeping submodule checkouts. +pub const MODULES: &str = "modules"; + +/// +pub mod repository; + +/// +pub mod is_git { + use std::path::PathBuf; + + /// The error returned by [`crate::is_git()`]. + #[derive(Debug, thiserror::Error)] + #[allow(missing_docs)] + pub enum Error { + #[error("Could not find a valid HEAD reference")] + FindHeadRef(#[from] gix_ref::file::find::existing::Error), + #[error("Expected HEAD at '.git/HEAD', got '.git/{}'", .name)] + MisplacedHead { name: bstr::BString }, + #[error("Expected an objects directory at '{}'", .missing.display())] + MissingObjectsDirectory { missing: PathBuf }, + #[error("The worktree's private repo's commondir file at '{}' or it could not be read", .missing.display())] + MissingCommonDir { missing: PathBuf, source: std::io::Error }, + #[error("Expected a refs directory at '{}'", .missing.display())] + MissingRefsDirectory { missing: PathBuf }, + #[error(transparent)] + GitFile(#[from] crate::path::from_gitdir_file::Error), + #[error("Could not retrieve metadata of \"{path}\"")] + Metadata { source: std::io::Error, path: PathBuf }, + } +} + +mod is; +pub use is::{bare as is_bare, git as is_git, submodule_git_dir as is_submodule_git_dir}; + +/// +pub mod upwards; +pub use upwards::function::{discover as upwards, discover_opts as upwards_opts}; + +/// +pub mod path; + +/// +pub mod parse; |