pub enum Step {
Advanced(String),
Conflict,
Unsafe {
strategy: &'static str,
violation: Violation,
},
Unavailable(String),
}Expand description
What a speculator did with one change.
Variants§
Advanced(String)
The change applied. This is the new speculative state.
Conflict
First-class conflict: the change is evicted for its author to resolve, and the train continues without it (D6).
Unsafe
A resolution applied edits the change never proposed.
Distinct from Step::Conflict because the author’s change may
be perfectly fine and the strategy at fault, which is a
different escalation. An implementation with a single
non-negotiable merge rule — git’s — can never return this, and
saying so is more useful than pretending the case is shared.
Fields
The speculator could not form an opinion: a broken worktree, a state that is not a state, git not on the path.
Not a conflict and not a failure. Blaming an author for our own inability to run a merge is the mistake D18’s four verdicts exist to prevent, one level up; the queue stalls on this exactly as it stalls on a provider fault, and nobody is evicted.