pub struct PushForward {
pub real_git: PathBuf,
pub arguments: Vec<OsString>,
pub overlay: Vec<(OsString, OsString)>,
pub copy: Option<Box<CopyFacts>>,
pub subcommand_index: usize,
pub environment: Vec<(OsString, OsString)>,
pub lfs_pre_push: Option<PathBuf>,
}Expand description
What: What a plain push that may be integrated needs to run and, when it fails on a divergence, to merge. Why: The run keeps the caller’s streams like the settled one does, so the integration step starts from Git’s status and the same arguments, environment and (inside a linked worktree) settlement as an unstacked push would have had.
In TS you’d write (pseudocode):
type PushForward = { realGit: string; args: string[]; overlay: [string, string][]; copy?: CopyFacts; subcommandIndex: number; environment: [string, string][] };Fields§
§real_git: PathBufThe selected real Git executable.
arguments: Vec<OsString>The arguments Git receives, global options included.
overlay: Vec<(OsString, OsString)>Variables added to the inherited environment.
copy: Option<Box<CopyFacts>>The linked-worktree settlement the run keeps when one applies.
subcommand_index: usizeIndex of push in arguments.
environment: Vec<(OsString, OsString)>The invocation’s environment, which the integration step starts Git with.
lfs_pre_push: Option<PathBuf>The wrapper executable the Git LFS pre-push hook names, when this push must upload LFS objects first. Only the push itself carries the hook; the integration step’s dry-run queries do not.
Trait Implementations§
Source§impl Clone for PushForward
impl Clone for PushForward
Source§impl Debug for PushForward
impl Debug for PushForward
impl Eq for PushForward
Source§impl PartialEq for PushForward
impl PartialEq for PushForward
impl StructuralPartialEq for PushForward
Auto Trait Implementations§
impl Freeze for PushForward
impl RefUnwindSafe for PushForward
impl Send for PushForward
impl Sync for PushForward
impl Unpin for PushForward
impl UnsafeUnpin for PushForward
impl UnwindSafe for PushForward
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.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