pub struct BaseSync {
pub tip: String,
pub behind: usize,
pub attempts: usize,
pub conflict: Option<String>,
}Expand description
How far the winner’s tree trailed the landing base, last time it was checked, and what came of trying to close that gap.
Set by graph::Runner::sync_to_base, which runs before the review loop and
again before the gate: verifying against a tree that does not yet contain
the base’s tip answers “green on the commit this run branched from”, not
“green on what is about to land”, and a merge on that answer can revert
whatever landed elsewhere while the run was thinking.
Fields§
§tip: String<remote>/<base> tip the tree was last checked against.
behind: usizeCommits tip was ahead of the tree at that check, before any rebase
this round tried to close the gap. Zero means the tree already
contained tip.
attempts: usizeRebase attempts spent so far this run, bounded by
graph::BASE_SYNC_ROUNDS.
conflict: Option<String>What git said, if the most recent rebase attempt conflicted or could
not be pushed. Some here is what makes a Blocked run read as
“stopped on the base, not on review or the gate” - the rebase is not
retried again while this is set; a person has to look.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for BaseSync
impl<'de> Deserialize<'de> for BaseSync
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for BaseSync
impl RefUnwindSafe for BaseSync
impl Send for BaseSync
impl Sync for BaseSync
impl Unpin for BaseSync
impl UnsafeUnpin for BaseSync
impl UnwindSafe for BaseSync
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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