pub struct FileConflict {
pub path: FilePath,
pub base: Option<FileEntry>,
pub ours: Option<FileEntry>,
pub theirs: Option<FileEntry>,
}Expand description
A path whose manifest entry differs on both sides of a merge, and
differs from the base too — a real content conflict, not a one-sided
edit (those auto-resolve before this is ever surfaced; see
Store::manifest_merge’s doc comment for the auto-resolve rule).
Blobs are opaque bytes (binary allowed, per #1007 §2) so there is no
meaningful 3-way content merge the way there is for text lines —
resolving a FileConflict means picking a side
(FileResolution::TakeOurs / FileResolution::TakeTheirs), not
splicing bytes. See the module docs on why real content merging is
out of scope for #1007 PR 7.
Fields§
§path: FilePath§base: Option<FileEntry>The path’s entry on the merge base (the LCA’s manifest). None
if the path didn’t exist there (both sides added it
differently — the file-level analogue of ConflictKind::AddAdd).
ours: Option<FileEntry>The path’s entry on dst’s side. None if dst doesn’t have it
(removed, or never added).
theirs: Option<FileEntry>The path’s entry on src’s side. None if src doesn’t have it.
Trait Implementations§
Source§impl Clone for FileConflict
impl Clone for FileConflict
Source§impl Debug for FileConflict
impl Debug for FileConflict
Source§impl<'de> Deserialize<'de> for FileConflict
impl<'de> Deserialize<'de> for FileConflict
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>,
impl Eq for FileConflict
Source§impl PartialEq for FileConflict
impl PartialEq for FileConflict
Source§impl Serialize for FileConflict
impl Serialize for FileConflict
impl StructuralPartialEq for FileConflict
Auto Trait Implementations§
impl Freeze for FileConflict
impl RefUnwindSafe for FileConflict
impl Send for FileConflict
impl Sync for FileConflict
impl Unpin for FileConflict
impl UnsafeUnpin for FileConflict
impl UnwindSafe for FileConflict
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.