pub struct Repo { /* private fields */ }Expand description
A repository handle. Cheap to clone — every field is either
Arc-wrapped (the gix handle) or a small owned value.
Repo is Send + Sync; method clones across tokio::spawn are
fine. See module-level docs for the wider design.
Implementations§
Source§impl Repo
impl Repo
Sourcepub async fn blame(
&self,
path: &Path,
revspec: &str,
) -> Result<Blame, RepoError>
pub async fn blame( &self, path: &Path, revspec: &str, ) -> Result<Blame, RepoError>
Compute per-line blame for path at revspec.
§Errors
RepoError::RevspecNotFound—revspecdid not resolve, orpathdoes not exist at the resolved commit.RepoError::WalkFailed— gix-blame encountered an internal error (object-store I/O, commit graph traversal).
Source§impl Repo
impl Repo
Sourcepub async fn checkout(
&self,
revspec: &str,
opts: CheckoutOptions,
) -> Result<(), RepoError>
pub async fn checkout( &self, revspec: &str, opts: CheckoutOptions, ) -> Result<(), RepoError>
Switch the working tree to revspec.
Refuses by default if the working tree has unstaged
modifications to tracked files — surfaced as
RepoError::DirtyWorkingTree with the offending paths.
Pass CheckoutOptions::force(true) to override.
§Errors
RepoError::DirtyWorkingTree— dirty tree,force = false.RepoError::RevspecNotFound—revspecdid not resolve.RepoError::CheckoutFailed—git checkoutreturned non-zero for some other reason.
Source§impl Repo
impl Repo
Sourcepub async fn clone(
url: &str,
dst: impl AsRef<Path>,
opts: CloneOptions,
) -> Result<Self, RepoError>
pub async fn clone( url: &str, dst: impl AsRef<Path>, opts: CloneOptions, ) -> Result<Self, RepoError>
Clone url into dst.
Anonymous clones (no credential on opts) run through gix
directly. Authenticated clones shell out to git with the
resolved token in process env (never argv).
dst must not exist or must be an empty directory.
§Errors
RepoError::CloneFailed— gix orgitcould not fetch refs, download objects, or check out the working tree.RepoError::Auth—opts.credentialcould not be resolved.
Source§impl Repo
impl Repo
Sourcepub async fn commit(
&self,
paths: &[&Path],
message: &str,
) -> Result<String, RepoError>
pub async fn commit( &self, paths: &[&Path], message: &str, ) -> Result<String, RepoError>
Stage paths and create a commit on HEAD with message.
Paths are interpreted relative to the repository’s working
tree. Paths that exist on disk are staged as modifications
or additions; paths that don’t exist (e.g. just deleted) are
staged as deletions. This matches git add <paths>
semantics.
Returns the new commit’s OID as a 40-character hex string.
§Errors
RepoError::CommitFailed— emptypaths,gitnot on PATH, no author / committer configured, or any other underlyinggit add/git commitfailure. Thecausefield carries the underlying error message.
Source§impl Repo
impl Repo
Sourcepub async fn diff(&self, a: &str, b: &str) -> Result<Diff, RepoError>
pub async fn diff(&self, a: &str, b: &str) -> Result<Diff, RepoError>
Diff two tree-ish references (e.g. HEAD~1 vs HEAD).
§Errors
RepoError::RevspecNotFound— eitheraorbcould not be resolved.RepoError::DiffFailed— gix could not read the trees or compute the diff.
Source§impl Repo
impl Repo
Sourcepub async fn fetch(
&self,
remote: &str,
opts: FetchOptions,
) -> Result<(), RepoError>
pub async fn fetch( &self, remote: &str, opts: FetchOptions, ) -> Result<(), RepoError>
Fetch from remote, updating remote-tracking refs but not
touching the working tree or local branches.
§Errors
RepoError::FetchFailed—git fetchreturned non-zero.RepoError::Auth—opts.credentialcould not be resolved.
Source§impl Repo
impl Repo
Sourcepub async fn init(
path: impl AsRef<Path>,
_opts: InitOptions,
) -> Result<Self, RepoError>
pub async fn init( path: impl AsRef<Path>, _opts: InitOptions, ) -> Result<Self, RepoError>
Initialise a new repository at path. The directory is
created if it doesn’t already exist (mirroring git init <path>
semantics).
§Errors
RepoError::InitFailed— gix could not create the repository (filesystem permission, an existing repository that conflicts, etc.).causecarries the backend’s stringified error.
Source§impl Repo
impl Repo
Sourcepub async fn push(
&self,
remote: &str,
refspec: &str,
opts: PushOptions,
) -> Result<(), RepoError>
pub async fn push( &self, remote: &str, refspec: &str, opts: PushOptions, ) -> Result<(), RepoError>
Push refspec to remote.
§Errors
RepoError::PushFailed—git pushreturned non-zero (unknown remote, network failure, non-fast-forward).RepoError::Auth—opts.credentialcould not be resolved.
Source§impl Repo
impl Repo
Sourcepub async fn status(&self) -> Result<RepoStatus, RepoError>
pub async fn status(&self) -> Result<RepoStatus, RepoError>
Compute the working-tree status.
§Errors
RepoError::StatusFailed— gix could not iterate the status (permission errors, malformed index, etc.).causecarries the backend’s stringified error.
Source§impl Repo
impl Repo
Sourcepub fn walk(&self, revspec: &str) -> Result<CommitWalk, RepoError>
pub fn walk(&self, revspec: &str) -> Result<CommitWalk, RepoError>
Walk the commit graph from revspec.
Supports Include (HEAD), Range (A..B), and Merge
(A...B) revspecs. The remaining gix-revision kinds
(IncludeOnlyParents, ExcludeParents, etc.) are reported
as RepoError::WalkFailed — they’re rare and we add
support when a real consumer asks.
§Errors
RepoError::RevspecNotFound—revspecdid not resolve.RepoError::WalkFailed— gix could not initialise the walk, orrevspecis a kind we don’t yet support.
Errors during walking (individual commits) are surfaced in-band on the returned stream.
Source§impl Repo
impl Repo
Sourcepub async fn open(path: impl AsRef<Path>) -> Result<Self, RepoError>
pub async fn open(path: impl AsRef<Path>) -> Result<Self, RepoError>
Open an existing repository at path. Discovers .git if
path is a subdirectory of a working tree (matches git’s
own discovery rules).
§Errors
RepoError::OpenFailed— the path does not contain a repository (or gix cannot read it).causecarries the backend’s stringified error.
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for Repo
impl !RefUnwindSafe for Repo
impl Send for Repo
impl Sync for Repo
impl Unpin for Repo
impl UnsafeUnpin for Repo
impl !UnwindSafe for Repo
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more