pub struct GitRepository { /* private fields */ }Expand description
Git repository wrapper.
Implementations§
Source§impl GitRepository
impl GitRepository
Sourcepub fn open_at<P: AsRef<Path>>(path: P) -> Result<Self>
pub fn open_at<P: AsRef<Path>>(path: P) -> Result<Self>
Opens a repository at the specified path.
Sourcepub fn get_working_directory_status(&self) -> Result<WorkingDirectoryStatus>
pub fn get_working_directory_status(&self) -> Result<WorkingDirectoryStatus>
Returns the working directory status.
Sourcepub fn is_working_directory_clean(&self) -> Result<bool>
pub fn is_working_directory_clean(&self) -> Result<bool>
Checks if the working directory is clean.
Sourcepub fn tracked_files(&self) -> Result<Vec<String>>
pub fn tracked_files(&self) -> Result<Vec<String>>
Returns the repo-relative paths of every file tracked in the git
index (what git ls-files would print), sorted and deduplicated.
Deduplication matters because an unresolved merge conflict produces one index entry per stage for the same path.
Sourcepub fn repository(&self) -> &Repository
pub fn repository(&self) -> &Repository
Returns access to the underlying git2::Repository.
Sourcepub fn get_current_branch(&self) -> Result<String>
pub fn get_current_branch(&self) -> Result<String>
Returns the current branch name.
Sourcepub fn branch_exists(&self, branch_name: &str) -> Result<bool>
pub fn branch_exists(&self, branch_name: &str) -> Result<bool>
Checks if a branch exists.
Sourcepub fn resolve_default_base_branch(&self) -> Option<String>
pub fn resolve_default_base_branch(&self) -> Option<String>
Resolves the default base branch for commit-range defaults.
Prefers remote-tracking refs so the default range binds to the remote’s
view of the mainline rather than a possibly-stale local branch:
origin/main → origin/master → main → master.
Returns None when none of these refs exist.
Sourcepub fn get_commits_in_range(&self, range: &str) -> Result<Vec<CommitInfo>>
pub fn get_commits_in_range(&self, range: &str) -> Result<Vec<CommitInfo>>
Parses a commit range and returns the commits.
Sourcepub fn get_commits_from_head(
&self,
max_count: Option<usize>,
) -> Result<Vec<CommitInfo>>
pub fn get_commits_from_head( &self, max_count: Option<usize>, ) -> Result<Vec<CommitInfo>>
Walks every commit reachable from HEAD, optionally capped to the
newest max_count non-merge commits.
Unlike Self::get_commits_in_range (which needs an explicit range),
this is the whole-history default a reporting command like config scopes usage wants when the caller gave no range at all.
Source§impl GitRepository
impl GitRepository
Auto Trait Implementations§
impl !Sync for GitRepository
impl Freeze for GitRepository
impl RefUnwindSafe for GitRepository
impl Send for GitRepository
impl Unpin for GitRepository
impl UnsafeUnpin for GitRepository
impl UnwindSafe for GitRepository
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more