pub struct MergedTreeBuilder { /* private fields */ }
Expand description

Helps with writing trees with conflicts. You start by creating an instance of this type with one or more base trees. You then add overrides on top. The overrides may be conflicts. Then you can write the result as a legacy tree (allowing path-level conflicts) or as multiple conflict-free trees.

Implementations§

source§

impl MergedTreeBuilder

source

pub fn new(base_tree_id: MergedTreeId) -> Self

Create a new builder with the given trees as base.

source

pub fn set_or_remove( &mut self, path: RepoPath, values: Merge<Option<TreeValue>> )

Set an override compared to the base tree. The values merge must either be resolved (i.e. have 1 side) or have the same number of sides as the base_tree_ids used to construct this builder. Use Merge::absent() to remove a value from the tree. When the base tree is a legacy tree, conflicts can be written either as a multi-way Merge value or as a resolved Merge value using TreeValue::Conflict.

source

pub fn write_tree(self, store: &Arc<Store>) -> BackendResult<MergedTreeId>

Create new tree(s) from the base tree(s) and overrides.

When the base tree was a legacy tree and the format.tree-level-conflicts config is disabled, then the result will be another legacy tree. Overrides with conflicts will result in conflict objects being written to the store. If format.tree-tree-level-conflicts is enabled, then a legacy tree will still be written and immediately converted and returned as a merged tree.

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. 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 Twhere 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.

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same for T

§

type Output = T

Should always be Self
source§

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

§

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

§

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

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

§

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