#[non_exhaustive]pub enum OperationState {
Clear,
Merge,
Rebase,
ApplyMailbox,
CherryPick,
Revert,
Bisect,
Conflict,
}Expand description
Whether the working copy is mid-operation, unified across the backends’
different models: git exposes an in-progress merge, rebase, am, cherry-pick,
revert, or bisect as on-disk state (MERGE_HEAD / a rebase-* dir /
CHERRY_PICK_HEAD / REVERT_HEAD / BISECT_LOG), while jj has no multi-step
operations — it records a conflict directly on the working-copy change.
The sequencer states are kept distinct because each aborts (and, where it
makes sense, continues) with its own git command — dispatching the wrong one
on a user’s real repository is exactly what this type exists to prevent. See
Repo::abort_in_progress /
continue_in_progress.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Clear
No operation in progress and no conflict.
Merge
A git merge is in progress (MERGE_HEAD present).
Rebase
A git rebase is in progress (a rebase-merge dir, or a rebase-apply dir
not left by git am — see ApplyMailbox).
ApplyMailbox
A git am (mailbox patch apply) is in progress. Distinct from Rebase
because it aborts/continues with am --abort / am --continue, not the
rebase --* twins (M20). Like the other sequencer states it has a real
--continue, so continue_in_progress
drives it forward (reporting Conflict if the next patch stops) rather than
treating it as nothing to do.
CherryPick
A git cherry-pick is in progress (CHERRY_PICK_HEAD present). Distinct
from Merge: it aborts/continues with cherry-pick --abort /
cherry-pick --continue (a cherry-pick conflict writes CHERRY_PICK_HEAD,
not MERGE_HEAD). git only.
Revert
A git revert is in progress (REVERT_HEAD present). Aborts/continues with
revert --abort / revert --continue. git only.
Bisect
A git bisect session is in progress (BISECT_LOG present). Aborts with
bisect reset; it has no --continue step (bisect advances by marking
commits good/bad), so
continue_in_progress reports it as
unsupported rather than silently doing nothing. git only.
Conflict
The working copy has an unresolved conflict (chiefly jj, which records conflicts on the change rather than pausing an operation).
Trait Implementations§
Source§impl Clone for OperationState
impl Clone for OperationState
Source§fn clone(&self) -> OperationState
fn clone(&self) -> OperationState
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more