Struct ExternalMergeTool

Source
pub struct ExternalMergeTool {
    pub program: String,
    pub diff_args: Vec<String>,
    pub diff_expected_exit_codes: Vec<i32>,
    pub diff_invocation_mode: DiffToolMode,
    pub diff_do_chdir: bool,
    pub edit_args: Vec<String>,
    pub merge_args: Vec<String>,
    pub merge_conflict_exit_codes: Vec<i32>,
    pub merge_tool_edits_conflict_markers: bool,
    pub conflict_marker_style: Option<ConflictMarkerStyle>,
}
Expand description

Merge/diff tool loaded from the settings.

Fields§

§program: String

Program to execute. Must be defined; defaults to the tool name if not specified in the config.

§diff_args: Vec<String>

Arguments to pass to the program when generating diffs. $left and $right are replaced with the corresponding directories.

§diff_expected_exit_codes: Vec<i32>

Exit codes to be treated as success when generating diffs.

§diff_invocation_mode: DiffToolMode

Whether to execute the tool with a pair of directories or individual files.

§diff_do_chdir: bool

Whether to execute the tool in the temporary diff directory

§edit_args: Vec<String>

Arguments to pass to the program when editing diffs. $left and $right are replaced with the corresponding directories.

§merge_args: Vec<String>

Arguments to pass to the program when resolving 3-way conflicts. $left, $right, $base, and $output are replaced with paths to the corresponding files.

§merge_conflict_exit_codes: Vec<i32>

By default, if a merge tool exits with a non-zero exit code, then the merge will be cancelled. Some merge tools allow leaving some conflicts unresolved, in which case they will be left as conflict markers in the output file. In that case, the merge tool may exit with a non-zero exit code to indicate that not all conflicts were resolved. Adding an exit code to this array will tell jj to interpret that exit code as indicating that the $output file should contain conflict markers.

§merge_tool_edits_conflict_markers: bool

If false (default), the $output file starts out empty and is accepted as a full conflict resolution as-is by jj after the merge tool is done with it. If true, the $output file starts out with the contents of the conflict, with the configured conflict markers. After the merge tool is done, any remaining conflict markers in the file are parsed and taken to mean that the conflict was only partially resolved.

§conflict_marker_style: Option<ConflictMarkerStyle>

If provided, overrides the normal conflict marker style setting. This is useful if a tool parses conflict markers, and so it requires a specific format, or if a certain format is more readable than another.

Implementations§

Source§

impl ExternalMergeTool

Source

pub fn with_program(program: impl Into<String>) -> Self

Source

pub fn with_diff_args(command_args: &CommandNameAndArgs) -> Self

Source

pub fn with_edit_args(command_args: &CommandNameAndArgs) -> Self

Source

pub fn with_merge_args(command_args: &CommandNameAndArgs) -> Self

Trait Implementations§

Source§

impl Clone for ExternalMergeTool

Source§

fn clone(&self) -> ExternalMergeTool

Returns a duplicate of the value. Read more
1.0.0 · Source§

const fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ExternalMergeTool

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for ExternalMergeTool

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for ExternalMergeTool

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl PartialEq for ExternalMergeTool

Source§

fn eq(&self, other: &ExternalMergeTool) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

const fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for ExternalMergeTool

Source§

impl StructuralPartialEq for ExternalMergeTool

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. 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 T
where 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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

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 T
where U: TryFrom<T>,

Source§

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

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

Source§

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

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> ErasedDestructor for T
where T: 'static,