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.