Skip to main content

GitVcs

Struct GitVcs 

Source
pub struct GitVcs;

Trait Implementations§

Source§

impl Vcs for GitVcs

Source§

fn ensure_commit(&self, repo: &Path, refspec_or_sha: &str) -> Result<()>

Fetch refspec_or_sha into the canonical repo if not already present.
Source§

fn add_workspace( &self, repo: &Path, ws: &Path, checkout: &Checkout, name: &str, version: &str, ) -> Result<String>

Create a new worktree/workspace at ws from the canonical repo, applying checkout. name is the review’s key slug (e.g. moz/D12345), used to namespace the ref that pins this version so it survives future updates; see update_workspace. Returns the resulting head id.
Source§

fn update_workspace( &self, repo: &Path, ws: &Path, checkout: &Checkout, name: &str, version: &str, ) -> Result<String>

Re-point an existing, clean workspace at a new checkout/version. The commit the workspace pointed at before this call remains reachable afterwards (each call pins its own resulting head under a name/version-namespaced ref rather than overwriting the previous one), so old versions stay available for interdiffing until remove_workspace drops them all. Returns the new head id.
Source§

fn is_dirty(&self, ws: &Path, expected_head: &str) -> Result<bool>

True if the workspace has local modifications, or its head isn’t expected_head (the stack tip) or one of its ancestors - either case means sync must not touch it silently. Sitting on an earlier patch of the stack (see position) is not dirty.
Source§

fn position(&self, ws: &Path, commit: &str) -> Result<()>

Move a clean workspace to commit, one of the patches reachable from the stack tip. Never rewrites any of the stack’s commits, so the tip stays valid for is_dirty.
Source§

fn commits( &self, ws: &Path, tip: &str, limit: usize, ) -> Result<Vec<(String, String)>>

Up to limit commits reachable from tip (newest first) as (commit id, message), so a caller can find the one carrying a particular review’s patch.
Source§

fn remove_workspace(&self, repo: &Path, ws: &Path, name: &str) -> Result<()>

Remove the worktree/workspace and every ref/bookmark add_workspace/update_workspace pinned for it under name. Callers only ever call this on a workspace is_dirty has already confirmed is clean - there’s no way to force-remove a dirty one.

Auto Trait Implementations§

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

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

Source§

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.
Source§

impl<T> With for T

Source§

fn wrap_with<U, F>(self, f: F) -> U
where F: FnOnce(Self) -> U,

Calls the given closure and return the result. Read more
Source§

fn with<F>(self, f: F) -> Self
where F: FnOnce(&mut Self),

Calls the given closure on self.
Source§

fn try_with<E, F>(self, f: F) -> Result<Self, E>
where F: FnOnce(&mut Self) -> Result<(), E>,

Calls the given closure on self.
Source§

fn with_if<F>(self, condition: bool, f: F) -> Self
where F: FnOnce(&mut Self),

Calls the given closure if condition == true.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more