//!#![allow(clippy::empty_docs)] /// The kind of Git repository, focussing on the repository data itself, i.e. what's in `.git`.#[derive(Debug, Clone, Copy, Eq, PartialEq, Ord, PartialOrd, Hash)]pub enum Kind { /// An ordinary Git repository. Common, /// A submodule worktree, whose `git` repository lives in `.git/modules/**/<name>` of the parent repository. /// /// Note that 'old-form' submodules (with a nested `.git` directory) are represented as [`Kind::Common`]. Submodule, /// A worktree, whose `git` repository lives in `.git/worktrees/**/<name>` of the parent repository. LinkedWorkTree,} #[cfg(any(feature = "attributes", feature = "excludes"))]pub mod attributes;///#[cfg(feature = "blame")]mod blame;mod cache;#[cfg(feature = "worktree-mutation")]mod checkout;mod config; ///#[cfg(feature = "blob-diff")]mod diff;///#[cfg(feature = "dirwalk")]mod dirwalk;///#[cfg(feature = "attributes")]pub mod filter;///pub mod freelist;mod graph;pub(crate) mod identity;mod impls;#[cfg(feature = "index")]mod index;pub(crate) mod init;mod location;#[cfg(feature = "mailmap")]mod mailmap;///#[cfg(feature = "merge")]mod merge;mod object;#[cfg(feature = "attributes")]mod pathspec;mod reference;mod remote;mod revision;mod shallow;mod state;#[cfg(feature = "attributes")]mod submodule;mod thread_safe;mod worktree; ///mod new_commit { /// The error returned by [`new_commit(…)`](crate::Repository::new_commit()). #[derive(Debug, thiserror::Error)] pub enum Error { #[error(transparent)] ParseTime(#[from] crate::config::time::Error), #[error("Committer identity is not configured")] CommitterMissing, #[error("Author identity is not configured")] AuthorMissing, #[error(transparent)] NewCommitAs(#[from] crate::repository::new_commit_as::Error), }} ///mod new_commit_as { /// The error returned by [`new_commit_as(…)`](crate::Repository::new_commit_as()). #[derive(Debug, thiserror::Error)] pub enum Error { #[error(transparent)] WriteObject(#[from] crate::object::write::Error), #[error(transparent)] FindCommit(#[from] crate::object::find::existing::Error), }} ///#[cfg(feature = "blame")]pub mod blame_file { /// Options to be passed to [Repository::blame_file()](crate::Repository::blame_file()). #[derive(Default, Debug, Clone)] pub struct Options { /// The algorithm to use for diffing. If `None`, `diff.algorithm` will be used. pub diff_algorithm: Option<gix_diff::blob::Algorithm>, /// The ranges to blame in the file. pub ranges: gix_blame::BlameRanges, /// Don't consider commits before the given date. pub since: Option<gix_date::Time>, /// Determine if rename tracking should be performed, and how. pub rewrites: Option<gix_diff::Rewrites>, } /// The error returned by [Repository::blame_file()](crate::Repository::blame_file()). #[derive(Debug, thiserror::Error)] #[expect(missing_docs)] pub enum Error { #[error(transparent)] CommitGraphIfEnabled(#[from] super::commit_graph_if_enabled::Error), #[error(transparent)] DiffAlgorithm(#[from] crate::config::diff::algorithm::Error), #[error(transparent)] DiffResourceCache(#[from] super::diff_resource_cache::Error), #[error(transparent)] Blame(#[from] gix_blame::Error), }} ///#[cfg(feature = "blob-diff")]pub mod diff_tree_to_tree { /// The error returned by [Repository::diff_tree_to_tree()](crate::Repository::diff_tree_to_tree()). #[derive(Debug, thiserror::Error)] #[expect(missing_docs)] pub enum Error { #[error(transparent)] DiffOptions(#[from] crate::diff::options::init::Error), #[error(transparent)] CreateResourceCache(#[from] super::diff_resource_cache::Error), #[error(transparent)] TreeDiff(#[from] gix_diff::tree_with_rewrites::Error), }} ///#[cfg(feature = "merge")]pub mod blob_merge_options { /// The error returned by [Repository::blob_merge_options()](crate::Repository::blob_merge_options()). #[derive(Debug, thiserror::Error)] #[expect(missing_docs)] pub enum Error { #[error(transparent)] DiffAlgorithm(#[from] crate::config::diff::algorithm::Error), #[error(transparent)] ConflictStyle(#[from] crate::config::key::GenericErrorWithValue), }} ///#[cfg(feature = "merge")]pub mod merge_resource_cache { /// The error returned by [Repository::merge_resource_cache()](crate::Repository::merge_resource_cache()). #[derive(Debug, thiserror::Error)] #[expect(missing_docs)] pub enum Error { #[error(transparent)] RenormalizeConfig(#[from] crate::config::boolean::Error), #[error(transparent)] PipelineOptions(#[from] crate::config::merge::pipeline_options::Error), #[error(transparent)] Index(#[from] crate::repository::index_or_load_from_head_or_empty::Error), #[error(transparent)] AttributeStack(#[from] crate::config::attribute_stack::Error), #[error(transparent)] CommandContext(#[from] crate::config::command_context::Error), #[error(transparent)] FilterPipeline(#[from] crate::filter::pipeline::options::Error), #[error(transparent)] DriversConfig(#[from] crate::config::merge::drivers::Error), }} ///#[cfg(feature = "merge")]pub mod merge_trees { /// The error returned by [Repository::merge_trees()](crate::Repository::merge_trees()). #[derive(Debug, thiserror::Error)] #[expect(missing_docs)] pub enum Error { #[error(transparent)] MergeResourceCache(#[from] super::merge_resource_cache::Error), #[error(transparent)] DiffResourceCache(#[from] super::diff_resource_cache::Error), #[error(transparent)] TreeMerge(#[from] gix_merge::tree::Error), #[error(transparent)] ValidationOptions(#[from] crate::config::boolean::Error), }} ///#[cfg(feature = "merge")]pub mod merge_commits { /// The error returned by [Repository::merge_commits()](crate::Repository::merge_commits()). #[derive(Debug, thiserror::Error)] #[expect(missing_docs)] pub enum Error { #[error(transparent)] OpenCommitGraph(#[from] super::commit_graph_if_enabled::Error), #[error(transparent)] MergeResourceCache(#[from] super::merge_resource_cache::Error), #[error(transparent)] DiffResourceCache(#[from] super::diff_resource_cache::Error), #[error(transparent)] CommitMerge(#[from] gix_merge::commit::Error), #[error(transparent)] ValidationOptions(#[from] crate::config::boolean::Error), }} ///#[cfg(feature = "merge")]pub mod virtual_merge_base { /// The error returned by [Repository::virtual_merge_base()](crate::Repository::virtual_merge_base()). #[derive(Debug, thiserror::Error)] #[expect(missing_docs)] pub enum Error { #[error(transparent)] OpenCommitGraph(#[from] super::commit_graph_if_enabled::Error), #[error(transparent)] VirtualMergeBase(#[from] super::virtual_merge_base_with_graph::Error), }} ///#[cfg(feature = "merge")]pub mod virtual_merge_base_with_graph { /// The error returned by [Repository::virtual_merge_base_with_graph()](crate::Repository::virtual_merge_base_with_graph()). #[derive(Debug, thiserror::Error)] #[expect(missing_docs)] pub enum Error { #[error("No commit was provided as merge-base")] MissingCommit, #[error(transparent)] MergeResourceCache(#[from] super::merge_resource_cache::Error), #[error(transparent)] DiffResourceCache(#[from] super::diff_resource_cache::Error), #[error(transparent)] CommitMerge(#[from] gix_merge::commit::Error), #[error(transparent)] FindCommit(#[from] crate::object::find::existing::with_conversion::Error), #[error(transparent)] DecodeCommit(#[from] gix_object::decode::Error), }} ///#[cfg(feature = "revision")]pub mod merge_base_octopus_with_graph { /// The error returned by [Repository::merge_base_octopus_with_graph()](crate::Repository::merge_base_octopus_with_graph()). #[derive(Debug, thiserror::Error)] #[expect(missing_docs)] pub enum Error { #[error("No commit was provided")] MissingCommit, #[error("No merge base was found between the given commits")] NoMergeBase, #[error(transparent)] MergeBase(#[from] gix_revision::merge_base::Error), }} ///#[cfg(feature = "revision")]pub mod merge_base_octopus { /// The error returned by [Repository::merge_base_octopus()](crate::Repository::merge_base_octopus()). #[derive(Debug, thiserror::Error)] #[expect(missing_docs)] pub enum Error { #[error(transparent)] OpenCache(#[from] crate::repository::commit_graph_if_enabled::Error), #[error(transparent)] MergeBaseOctopus(#[from] super::merge_base_octopus_with_graph::Error), }} ///#[cfg(feature = "revision")]pub mod merge_bases_many { /// The error returned by [Repository::merge_bases_many()](crate::Repository::merge_bases_many()). #[derive(Debug, thiserror::Error)] #[expect(missing_docs)] pub enum Error { #[error(transparent)] OpenCache(#[from] crate::repository::commit_graph_if_enabled::Error), #[error(transparent)] MergeBase(#[from] gix_revision::merge_base::Error), }} ///#[cfg(feature = "merge")]pub mod tree_merge_options { /// The error returned by [Repository::tree_merge_options()](crate::Repository::tree_merge_options()). #[derive(Debug, thiserror::Error)] #[expect(missing_docs)] pub enum Error { #[error(transparent)] BlobMergeOptions(#[from] super::blob_merge_options::Error), #[error(transparent)] RewritesConfig(#[from] crate::diff::new_rewrites::Error), #[error(transparent)] CommandContext(#[from] crate::config::command_context::Error), }} ///#[cfg(feature = "blob-diff")]pub mod diff_resource_cache { /// The error returned by [Repository::diff_resource_cache()](crate::Repository::diff_resource_cache()). #[derive(Debug, thiserror::Error)] #[expect(missing_docs)] pub enum Error { #[error("Could not obtain resource cache for diffing")] ResourceCache(#[from] crate::diff::resource_cache::Error), #[error(transparent)] Index(#[from] crate::repository::index_or_load_from_head_or_empty::Error), #[error(transparent)] AttributeStack(#[from] crate::config::attribute_stack::Error), }} ///#[cfg(feature = "tree-editor")]pub mod edit_tree { /// The error returned by [Repository::edit_tree()](crate::Repository::edit_tree). #[derive(Debug, thiserror::Error)] #[expect(missing_docs)] pub enum Error { #[error(transparent)] FindTree(#[from] crate::object::find::existing::with_conversion::Error), #[error(transparent)] InitEditor(#[from] crate::object::tree::editor::init::Error), }} ///#[cfg(feature = "revision")]pub mod merge_base { /// The error returned by [Repository::merge_base()](crate::Repository::merge_base()). #[derive(Debug, thiserror::Error)] #[expect(missing_docs)] pub enum Error { #[error(transparent)] OpenCache(#[from] crate::repository::commit_graph_if_enabled::Error), #[error(transparent)] FindMergeBase(#[from] gix_revision::merge_base::Error), #[error("Could not find a merge-base between commits {first} and {second}")] NotFound { first: gix_hash::ObjectId, second: gix_hash::ObjectId, }, }} ///#[cfg(feature = "revision")]pub mod merge_base_with_graph { /// The error returned by [Repository::merge_base_with_cache()](crate::Repository::merge_base_with_graph()). #[derive(Debug, thiserror::Error)] #[expect(missing_docs)] pub enum Error { #[error(transparent)] FindMergeBase(#[from] gix_revision::merge_base::Error), #[error("Could not find a merge-base between commits {first} and {second}")] NotFound { first: gix_hash::ObjectId, second: gix_hash::ObjectId, }, }} ///pub mod commit_graph_if_enabled { /// The error returned by [Repository::commit_graph_if_enabled()](crate::Repository::commit_graph_if_enabled()). #[derive(Debug, thiserror::Error)] #[expect(missing_docs)] pub enum Error { #[error(transparent)] ConfigBoolean(#[from] crate::config::boolean::Error), #[error(transparent)] OpenCommitGraph(#[from] crate::Error), }} ///#[cfg(feature = "index")]pub mod index_from_tree { /// The error returned by [Repository::index_from_tree()](crate::Repository::index_from_tree). #[derive(Debug, thiserror::Error)] #[expect(missing_docs)] pub enum Error { #[error("Could not create index from tree at {id}")] IndexFromTree { id: gix_hash::ObjectId, source: gix_index::init::from_tree::Error, }, #[error("Couldn't obtain configuration for core.protect*")] BooleanConfig(#[from] crate::config::boolean::Error), }} ///pub mod branch_remote_ref_name { /// The error returned by [Repository::branch_remote_ref_name()](crate::Repository::branch_remote_ref_name()). #[derive(Debug, thiserror::Error)] #[expect(missing_docs)] pub enum Error { #[error("The configured name of the remote ref to merge wasn't valid")] ValidateFetchRemoteRefName(#[from] gix_validate::reference::name::Error), #[error(transparent)] PushDefault(#[from] crate::config::key::GenericErrorWithValue), #[error(transparent)] FindPushRemote(#[from] crate::remote::find::existing::Error), }} ///pub mod branch_remote_tracking_ref_name { /// The error returned by [Repository::branch_remote_tracking_ref_name()](crate::Repository::branch_remote_tracking_ref_name()). #[derive(Debug, thiserror::Error)] #[expect(missing_docs)] pub enum Error { #[error("The name of the tracking reference was invalid")] ValidateTrackingRef(#[from] gix_validate::reference::name::Error), #[error("Could not get the remote reference to translate into the local tracking branch")] RemoteRef(#[from] super::branch_remote_ref_name::Error), #[error("Couldn't find remote to obtain fetch-specs for mapping to the tracking reference")] FindRemote(#[from] crate::remote::find::existing::Error), }} ///pub mod upstream_branch_and_remote_name_for_tracking_branch { /// The error returned by [Repository::upstream_branch_and_remote_name_for_tracking_branch()](crate::Repository::upstream_branch_and_remote_for_tracking_branch()). #[derive(Debug, thiserror::Error)] #[expect(missing_docs)] pub enum Error { #[error("The input branch '{}' needs to be a remote tracking branch", full_name.as_bstr())] BranchCategory { full_name: gix_ref::FullName }, #[error(transparent)] FindRemote(#[from] crate::remote::find::existing::Error), #[error("Found ambiguous remotes without 1:1 mapping or more than one match: {}", remotes.iter() .map(|r| r.as_bstr().to_string()) .collect::<Vec<_>>().join(", "))] AmbiguousRemotes { remotes: Vec<crate::remote::Name<'static>> }, #[error(transparent)] ValidateUpstreamBranch(#[from] gix_ref::name::Error), }} ///#[cfg(feature = "attributes")]pub mod pathspec_defaults_ignore_case { /// The error returned by [Repository::pathspec_defaults_ignore_case()](crate::Repository::pathspec_defaults_inherit_ignore_case()). #[derive(Debug, thiserror::Error)] #[expect(missing_docs)] pub enum Error { #[error("Filesystem configuration could not be obtained to learn about case sensitivity")] FilesystemConfig(#[from] crate::config::boolean::Error), #[error(transparent)] Defaults(#[from] gix_pathspec::defaults::from_environment::Error), }} ///#[cfg(feature = "index")]pub mod index_or_load_from_head { /// The error returned by [`Repository::index_or_load_from_head()`](crate::Repository::index_or_load_from_head()). #[derive(thiserror::Error, Debug)] #[expect(missing_docs)] pub enum Error { #[error(transparent)] HeadCommit(#[from] crate::reference::head_commit::Error), #[error(transparent)] TreeId(#[from] gix_object::decode::Error), #[error(transparent)] TraverseTree(#[from] crate::repository::index_from_tree::Error), #[error(transparent)] OpenIndex(#[from] crate::worktree::open_index::Error), }} ///#[cfg(feature = "index")]pub mod index_or_load_from_head_or_empty { /// The error returned by [`Repository::index_or_load_from_head_or_empty()`](crate::Repository::index_or_load_from_head_or_empty()). #[derive(thiserror::Error, Debug)] #[expect(missing_docs)] pub enum Error { #[error(transparent)] ReadHead(#[from] crate::reference::find::existing::Error), #[error(transparent)] FindCommit(#[from] crate::object::find::existing::Error), #[error(transparent)] PeelToTree(#[from] crate::object::peel::to_kind::Error), #[error(transparent)]Lines 1–500 of 539. Load more
//! #![allow(clippy::empty_docs)] /// The kind of Git repository, focussing on the repository data itself, i.e. what's in `.git`. #[derive(Debug, Clone, Copy, Eq, PartialEq, Ord, PartialOrd, Hash)] pub enum Kind { /// An ordinary Git repository. Common, /// A submodule worktree, whose `git` repository lives in `.git/modules/**/<name>` of the parent repository. /// /// Note that 'old-form' submodules (with a nested `.git` directory) are represented as [`Kind::Common`]. Submodule, /// A worktree, whose `git` repository lives in `.git/worktrees/**/<name>` of the parent repository. LinkedWorkTree, } #[cfg(any(feature = "attributes", feature = "excludes"))] pub mod attributes; /// #[cfg(feature = "blame")] mod blame; mod cache; #[cfg(feature = "worktree-mutation")] mod checkout; mod config; /// #[cfg(feature = "blob-diff")] mod diff; /// #[cfg(feature = "dirwalk")] mod dirwalk; /// #[cfg(feature = "attributes")] pub mod filter; /// pub mod freelist; mod graph; pub(crate) mod identity; mod impls; #[cfg(feature = "index")] mod index; pub(crate) mod init; mod location; #[cfg(feature = "mailmap")] mod mailmap; /// #[cfg(feature = "merge")] mod merge; mod object; #[cfg(feature = "attributes")] mod pathspec; mod reference; mod remote; mod revision; mod shallow; mod state; #[cfg(feature = "attributes")] mod submodule; mod thread_safe; mod worktree; /// mod new_commit { /// The error returned by [`new_commit(…)`](crate::Repository::new_commit()). #[derive(Debug, thiserror::Error)] pub enum Error { #[error(transparent)] ParseTime(#[from] crate::config::time::Error), #[error("Committer identity is not configured")] CommitterMissing, #[error("Author identity is not configured")] AuthorMissing, #[error(transparent)] NewCommitAs(#[from] crate::repository::new_commit_as::Error), } } /// mod new_commit_as { /// The error returned by [`new_commit_as(…)`](crate::Repository::new_commit_as()). #[derive(Debug, thiserror::Error)] pub enum Error { #[error(transparent)] WriteObject(#[from] crate::object::write::Error), #[error(transparent)] FindCommit(#[from] crate::object::find::existing::Error), } } /// #[cfg(feature = "blame")] pub mod blame_file { /// Options to be passed to [Repository::blame_file()](crate::Repository::blame_file()). #[derive(Default, Debug, Clone)] pub struct Options { /// The algorithm to use for diffing. If `None`, `diff.algorithm` will be used. pub diff_algorithm: Option<gix_diff::blob::Algorithm>, /// The ranges to blame in the file. pub ranges: gix_blame::BlameRanges, /// Don't consider commits before the given date. pub since: Option<gix_date::Time>, /// Determine if rename tracking should be performed, and how. pub rewrites: Option<gix_diff::Rewrites>, } /// The error returned by [Repository::blame_file()](crate::Repository::blame_file()). #[derive(Debug, thiserror::Error)] #[expect(missing_docs)] pub enum Error { #[error(transparent)] CommitGraphIfEnabled(#[from] super::commit_graph_if_enabled::Error), #[error(transparent)] DiffAlgorithm(#[from] crate::config::diff::algorithm::Error), #[error(transparent)] DiffResourceCache(#[from] super::diff_resource_cache::Error), #[error(transparent)] Blame(#[from] gix_blame::Error), } } /// #[cfg(feature = "blob-diff")] pub mod diff_tree_to_tree { /// The error returned by [Repository::diff_tree_to_tree()](crate::Repository::diff_tree_to_tree()). #[derive(Debug, thiserror::Error)] #[expect(missing_docs)] pub enum Error { #[error(transparent)] DiffOptions(#[from] crate::diff::options::init::Error), #[error(transparent)] CreateResourceCache(#[from] super::diff_resource_cache::Error), #[error(transparent)] TreeDiff(#[from] gix_diff::tree_with_rewrites::Error), } } /// #[cfg(feature = "merge")] pub mod blob_merge_options { /// The error returned by [Repository::blob_merge_options()](crate::Repository::blob_merge_options()). #[derive(Debug, thiserror::Error)] #[expect(missing_docs)] pub enum Error { #[error(transparent)] DiffAlgorithm(#[from] crate::config::diff::algorithm::Error), #[error(transparent)] ConflictStyle(#[from] crate::config::key::GenericErrorWithValue), } } /// #[cfg(feature = "merge")] pub mod merge_resource_cache { /// The error returned by [Repository::merge_resource_cache()](crate::Repository::merge_resource_cache()). #[derive(Debug, thiserror::Error)] #[expect(missing_docs)] pub enum Error { #[error(transparent)] RenormalizeConfig(#[from] crate::config::boolean::Error), #[error(transparent)] PipelineOptions(#[from] crate::config::merge::pipeline_options::Error), #[error(transparent)] Index(#[from] crate::repository::index_or_load_from_head_or_empty::Error), #[error(transparent)] AttributeStack(#[from] crate::config::attribute_stack::Error), #[error(transparent)] CommandContext(#[from] crate::config::command_context::Error), #[error(transparent)] FilterPipeline(#[from] crate::filter::pipeline::options::Error), #[error(transparent)] DriversConfig(#[from] crate::config::merge::drivers::Error), } } /// #[cfg(feature = "merge")] pub mod merge_trees { /// The error returned by [Repository::merge_trees()](crate::Repository::merge_trees()). #[derive(Debug, thiserror::Error)] #[expect(missing_docs)] pub enum Error { #[error(transparent)] MergeResourceCache(#[from] super::merge_resource_cache::Error), #[error(transparent)] DiffResourceCache(#[from] super::diff_resource_cache::Error), #[error(transparent)] TreeMerge(#[from] gix_merge::tree::Error), #[error(transparent)] ValidationOptions(#[from] crate::config::boolean::Error), } } /// #[cfg(feature = "merge")] pub mod merge_commits { /// The error returned by [Repository::merge_commits()](crate::Repository::merge_commits()). #[derive(Debug, thiserror::Error)] #[expect(missing_docs)] pub enum Error { #[error(transparent)] OpenCommitGraph(#[from] super::commit_graph_if_enabled::Error), #[error(transparent)] MergeResourceCache(#[from] super::merge_resource_cache::Error), #[error(transparent)] DiffResourceCache(#[from] super::diff_resource_cache::Error), #[error(transparent)] CommitMerge(#[from] gix_merge::commit::Error), #[error(transparent)] ValidationOptions(#[from] crate::config::boolean::Error), } } /// #[cfg(feature = "merge")] pub mod virtual_merge_base { /// The error returned by [Repository::virtual_merge_base()](crate::Repository::virtual_merge_base()). #[derive(Debug, thiserror::Error)] #[expect(missing_docs)] pub enum Error { #[error(transparent)] OpenCommitGraph(#[from] super::commit_graph_if_enabled::Error), #[error(transparent)] VirtualMergeBase(#[from] super::virtual_merge_base_with_graph::Error), } } /// #[cfg(feature = "merge")] pub mod virtual_merge_base_with_graph { /// The error returned by [Repository::virtual_merge_base_with_graph()](crate::Repository::virtual_merge_base_with_graph()). #[derive(Debug, thiserror::Error)] #[expect(missing_docs)] pub enum Error { #[error("No commit was provided as merge-base")] MissingCommit, #[error(transparent)] MergeResourceCache(#[from] super::merge_resource_cache::Error), #[error(transparent)] DiffResourceCache(#[from] super::diff_resource_cache::Error), #[error(transparent)] CommitMerge(#[from] gix_merge::commit::Error), #[error(transparent)] FindCommit(#[from] crate::object::find::existing::with_conversion::Error), #[error(transparent)] DecodeCommit(#[from] gix_object::decode::Error), } } /// #[cfg(feature = "revision")] pub mod merge_base_octopus_with_graph { /// The error returned by [Repository::merge_base_octopus_with_graph()](crate::Repository::merge_base_octopus_with_graph()). #[derive(Debug, thiserror::Error)] #[expect(missing_docs)] pub enum Error { #[error("No commit was provided")] MissingCommit, #[error("No merge base was found between the given commits")] NoMergeBase, #[error(transparent)] MergeBase(#[from] gix_revision::merge_base::Error), } } /// #[cfg(feature = "revision")] pub mod merge_base_octopus { /// The error returned by [Repository::merge_base_octopus()](crate::Repository::merge_base_octopus()). #[derive(Debug, thiserror::Error)] #[expect(missing_docs)] pub enum Error { #[error(transparent)] OpenCache(#[from] crate::repository::commit_graph_if_enabled::Error), #[error(transparent)] MergeBaseOctopus(#[from] super::merge_base_octopus_with_graph::Error), } } /// #[cfg(feature = "revision")] pub mod merge_bases_many { /// The error returned by [Repository::merge_bases_many()](crate::Repository::merge_bases_many()). #[derive(Debug, thiserror::Error)] #[expect(missing_docs)] pub enum Error { #[error(transparent)] OpenCache(#[from] crate::repository::commit_graph_if_enabled::Error), #[error(transparent)] MergeBase(#[from] gix_revision::merge_base::Error), } } /// #[cfg(feature = "merge")] pub mod tree_merge_options { /// The error returned by [Repository::tree_merge_options()](crate::Repository::tree_merge_options()). #[derive(Debug, thiserror::Error)] #[expect(missing_docs)] pub enum Error { #[error(transparent)] BlobMergeOptions(#[from] super::blob_merge_options::Error), #[error(transparent)] RewritesConfig(#[from] crate::diff::new_rewrites::Error), #[error(transparent)] CommandContext(#[from] crate::config::command_context::Error), } } /// #[cfg(feature = "blob-diff")] pub mod diff_resource_cache { /// The error returned by [Repository::diff_resource_cache()](crate::Repository::diff_resource_cache()). #[derive(Debug, thiserror::Error)] #[expect(missing_docs)] pub enum Error { #[error("Could not obtain resource cache for diffing")] ResourceCache(#[from] crate::diff::resource_cache::Error), #[error(transparent)] Index(#[from] crate::repository::index_or_load_from_head_or_empty::Error), #[error(transparent)] AttributeStack(#[from] crate::config::attribute_stack::Error), } } /// #[cfg(feature = "tree-editor")] pub mod edit_tree { /// The error returned by [Repository::edit_tree()](crate::Repository::edit_tree). #[derive(Debug, thiserror::Error)] #[expect(missing_docs)] pub enum Error { #[error(transparent)] FindTree(#[from] crate::object::find::existing::with_conversion::Error), #[error(transparent)] InitEditor(#[from] crate::object::tree::editor::init::Error), } } /// #[cfg(feature = "revision")] pub mod merge_base { /// The error returned by [Repository::merge_base()](crate::Repository::merge_base()). #[derive(Debug, thiserror::Error)] #[expect(missing_docs)] pub enum Error { #[error(transparent)] OpenCache(#[from] crate::repository::commit_graph_if_enabled::Error), #[error(transparent)] FindMergeBase(#[from] gix_revision::merge_base::Error), #[error("Could not find a merge-base between commits {first} and {second}")] NotFound { first: gix_hash::ObjectId, second: gix_hash::ObjectId, }, } } /// #[cfg(feature = "revision")] pub mod merge_base_with_graph { /// The error returned by [Repository::merge_base_with_cache()](crate::Repository::merge_base_with_graph()). #[derive(Debug, thiserror::Error)] #[expect(missing_docs)] pub enum Error { #[error(transparent)] FindMergeBase(#[from] gix_revision::merge_base::Error), #[error("Could not find a merge-base between commits {first} and {second}")] NotFound { first: gix_hash::ObjectId, second: gix_hash::ObjectId, }, } } /// pub mod commit_graph_if_enabled { /// The error returned by [Repository::commit_graph_if_enabled()](crate::Repository::commit_graph_if_enabled()). #[derive(Debug, thiserror::Error)] #[expect(missing_docs)] pub enum Error { #[error(transparent)] ConfigBoolean(#[from] crate::config::boolean::Error), #[error(transparent)] OpenCommitGraph(#[from] crate::Error), } } /// #[cfg(feature = "index")] pub mod index_from_tree { /// The error returned by [Repository::index_from_tree()](crate::Repository::index_from_tree). #[derive(Debug, thiserror::Error)] #[expect(missing_docs)] pub enum Error { #[error("Could not create index from tree at {id}")] IndexFromTree { id: gix_hash::ObjectId, source: gix_index::init::from_tree::Error, }, #[error("Couldn't obtain configuration for core.protect*")] BooleanConfig(#[from] crate::config::boolean::Error), } } /// pub mod branch_remote_ref_name { /// The error returned by [Repository::branch_remote_ref_name()](crate::Repository::branch_remote_ref_name()). #[derive(Debug, thiserror::Error)] #[expect(missing_docs)] pub enum Error { #[error("The configured name of the remote ref to merge wasn't valid")] ValidateFetchRemoteRefName(#[from] gix_validate::reference::name::Error), #[error(transparent)] PushDefault(#[from] crate::config::key::GenericErrorWithValue), #[error(transparent)] FindPushRemote(#[from] crate::remote::find::existing::Error), } } /// pub mod branch_remote_tracking_ref_name { /// The error returned by [Repository::branch_remote_tracking_ref_name()](crate::Repository::branch_remote_tracking_ref_name()). #[derive(Debug, thiserror::Error)] #[expect(missing_docs)] pub enum Error { #[error("The name of the tracking reference was invalid")] ValidateTrackingRef(#[from] gix_validate::reference::name::Error), #[error("Could not get the remote reference to translate into the local tracking branch")] RemoteRef(#[from] super::branch_remote_ref_name::Error), #[error("Couldn't find remote to obtain fetch-specs for mapping to the tracking reference")] FindRemote(#[from] crate::remote::find::existing::Error), } } /// pub mod upstream_branch_and_remote_name_for_tracking_branch { /// The error returned by [Repository::upstream_branch_and_remote_name_for_tracking_branch()](crate::Repository::upstream_branch_and_remote_for_tracking_branch()). #[derive(Debug, thiserror::Error)] #[expect(missing_docs)] pub enum Error { #[error("The input branch '{}' needs to be a remote tracking branch", full_name.as_bstr())] BranchCategory { full_name: gix_ref::FullName }, #[error(transparent)] FindRemote(#[from] crate::remote::find::existing::Error), #[error("Found ambiguous remotes without 1:1 mapping or more than one match: {}", remotes.iter() .map(|r| r.as_bstr().to_string()) .collect::<Vec<_>>().join(", "))] AmbiguousRemotes { remotes: Vec<crate::remote::Name<'static>> }, #[error(transparent)] ValidateUpstreamBranch(#[from] gix_ref::name::Error), } } /// #[cfg(feature = "attributes")] pub mod pathspec_defaults_ignore_case { /// The error returned by [Repository::pathspec_defaults_ignore_case()](crate::Repository::pathspec_defaults_inherit_ignore_case()). #[derive(Debug, thiserror::Error)] #[expect(missing_docs)] pub enum Error { #[error("Filesystem configuration could not be obtained to learn about case sensitivity")] FilesystemConfig(#[from] crate::config::boolean::Error), #[error(transparent)] Defaults(#[from] gix_pathspec::defaults::from_environment::Error), } } /// #[cfg(feature = "index")] pub mod index_or_load_from_head { /// The error returned by [`Repository::index_or_load_from_head()`](crate::Repository::index_or_load_from_head()). #[derive(thiserror::Error, Debug)] #[expect(missing_docs)] pub enum Error { #[error(transparent)] HeadCommit(#[from] crate::reference::head_commit::Error), #[error(transparent)] TreeId(#[from] gix_object::decode::Error), #[error(transparent)] TraverseTree(#[from] crate::repository::index_from_tree::Error), #[error(transparent)] OpenIndex(#[from] crate::worktree::open_index::Error), } } /// #[cfg(feature = "index")] pub mod index_or_load_from_head_or_empty { /// The error returned by [`Repository::index_or_load_from_head_or_empty()`](crate::Repository::index_or_load_from_head_or_empty()). #[derive(thiserror::Error, Debug)] #[expect(missing_docs)] pub enum Error { #[error(transparent)] ReadHead(#[from] crate::reference::find::existing::Error), #[error(transparent)] FindCommit(#[from] crate::object::find::existing::Error), #[error(transparent)] PeelToTree(#[from] crate::object::peel::to_kind::Error), #[error(transparent)]