pub struct Options<'a> {
pub required_trust: Trust,
pub ceiling_dirs: Vec<PathBuf>,
pub match_ceiling_dir_or_error: bool,
pub cross_fs: bool,
pub dot_git_only: bool,
pub current_dir: Option<&'a Path>,
}
Expand description
Options to help guide the discovery of repositories, along with their options when instantiated.
Fields§
§required_trust: Trust
When discovering a repository, assure it has at least this trust level or ignore it otherwise.
This defaults to Reduced
as our default settings are geared towards avoiding abuse.
Set it to Full
to only see repositories that are owned by the current user.
ceiling_dirs: Vec<PathBuf>
When discovering a repository, ignore any repositories that are located in these directories or any of their parents.
Note that we ignore ceiling directories if the search directory is directly on top of one, which by default is an error
if match_ceiling_dir_or_error
is true, the default.
match_ceiling_dir_or_error: bool
If true, default true, and ceiling_dirs
is not empty, we expect at least one ceiling directory to
contain our search dir or else there will be an error.
cross_fs: bool
if true
avoid crossing filesystem boundaries.
Only supported on Unix-like systems.
dot_git_only: bool
If true, limit discovery to .git
directories.
This will fail to find typical bare repositories, but would find them if they happen to be named .git
.
Use this option if repos with worktrees are the only kind of repositories you are interested in for
optimal discovery performance.
current_dir: Option<&'a Path>
If set, the current working directory (absolute path) to use when resolving relative paths. Note that that this is merely an optimization for those who discover a lot of repositories in the same process.
If unset, the current working directory will be obtained automatically.
Note that the path here might or might not contained decomposed unicode, which may end up in a path
relevant us, like the git-dir or the worktree-dir. However, when opening the repository, it will
change decomposed unicode to precomposed unicode based on the value of core.precomposeUnicode
, and we
don’t have to deal with that value here just yet.
Implementations§
Source§impl Options<'_>
impl Options<'_>
Sourcepub fn apply_environment(self) -> Self
pub fn apply_environment(self) -> Self
Loads discovery options overrides from the environment.
The environment variables are:
GIT_CEILING_DIRECTORIES
forceiling_dirs
Note that GIT_DISCOVERY_ACROSS_FILESYSTEM
for cross_fs
is not read,
as it requires parsing of git-config
style boolean values.