Struct cargo::sources::git::GitCheckout

source ·
pub struct GitCheckout<'a> {
    database: &'a GitDatabase,
    path: PathBuf,
    revision: Oid,
    repo: Repository,
}
Expand description

A local checkout of a particular revision from a GitDatabase.

Fields§

§database: &'a GitDatabase

The git database where this checkout is cloned from.

§path: PathBuf

Path to the root of the underlying Git repository on the local filesystem.

§revision: Oid

The git revision this checkout is for.

§repo: Repository

Underlying Git repository instance for this checkout.

Implementations§

source§

impl<'a> GitCheckout<'a>

source

fn new( database: &'a GitDatabase, revision: Oid, repo: Repository ) -> GitCheckout<'a>

Creates an instance of GitCheckout. This doesn’t imply the checkout is done. Use GitCheckout::is_fresh to check.

  • The database is where this checkout is from.
  • The repo will be the checked out Git repository.
source

fn remote_url(&self) -> &Url

Gets the remote repository URL.

source

fn clone_into( into: &Path, database: &'a GitDatabase, revision: Oid, config: &Config ) -> CargoResult<GitCheckout<'a>>

Clone a repo for a revision into a local path from a datatabase. This is a filesystem-to-filesystem clone.

source

fn is_fresh(&self) -> bool

Checks if the HEAD of this checkout points to the expected revision.

source

fn reset(&self, config: &Config) -> CargoResult<()>

Similar to reset(). This roughly performs git reset --hard to the revision of this checkout, with additional interrupt protection by a dummy file CHECKOUT_READY_LOCK.

If we’re interrupted while performing a git reset (e.g., we die because of a signal) Cargo needs to be sure to try to check out this repo again on the next go-round.

To enable this we have a dummy file in our checkout, .cargo-ok, which if present means that the repo has been successfully reset and is ready to go. Hence if we start to do a reset, we make sure this file doesn’t exist, and then once we’re done we create the file.

source

fn update_submodules(&self, cargo_config: &Config) -> CargoResult<()>

Like git submodule update --recursive but for this git checkout.

This function respects submodule.<name>.update = none1 git config. Submodules set to none won’t be fetched.

Auto Trait Implementations§

§

impl<'a> RefUnwindSafe for GitCheckout<'a>

§

impl<'a> !Send for GitCheckout<'a>

§

impl<'a> !Sync for GitCheckout<'a>

§

impl<'a> Unpin for GitCheckout<'a>

§

impl<'a> UnwindSafe for GitCheckout<'a>

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
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 Twhere 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> Same<T> for T

§

type Output = T

Should always be Self
source§

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

§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

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

§

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

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

fn vzip(self) -> V

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

Layout§

Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.

Size: 64 bytes