Struct gix_discover::upwards::Options

source ·
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<'_>

source

pub fn apply_environment(self) -> Self

Loads discovery options overrides from the environment.

The environment variables are:

  • GIT_CEILING_DIRECTORIES for ceiling_dirs

Note that GIT_DISCOVERY_ACROSS_FILESYSTEM for cross_fs is not read, as it requires parsing of git-config style boolean values.

Trait Implementations§

source§

impl Default for Options<'_>

source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for Options<'a>

§

impl<'a> RefUnwindSafe for Options<'a>

§

impl<'a> Send for Options<'a>

§

impl<'a> Sync for Options<'a>

§

impl<'a> Unpin for Options<'a>

§

impl<'a> UnwindSafe for Options<'a>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.