pub struct TreeMergeOutput {
pub index: Index,
pub conflict_content: BTreeMap<Vec<u8>, ObjectId>,
pub result_tree: ObjectId,
pub touched_paths: HashSet<Vec<u8>>,
pub rename_conflicts: Vec<RenameRenameConflict>,
pub directory_rename_conflicts: Vec<DirectoryRenameConflict>,
}Expand description
Result of merging three trees with optional conflict-marker blobs for checkout.
Fields§
§index: IndexMerged index entries for touched paths (may include unmerged stages).
conflict_content: BTreeMap<Vec<u8>, ObjectId>Conflict-marker blob OIDs keyed by path (stage-2 path bytes).
result_tree: ObjectIdResult tree OID (clean merge layout; conflict paths use stage-0 entries from Self::index).
touched_paths: HashSet<Vec<u8>>Repository-relative paths whose merge outcome differs from ours_tree.
rename_conflicts: Vec<RenameRenameConflict>Base paths renamed to a different destination on each side, sorted by base path.
Each one leaves the base entry at stage 1 under RenameRenameConflict::base_path,
stage 2 under RenameRenameConflict::ours_path and stage 3 under
RenameRenameConflict::theirs_path, with the merged content at both destinations.
directory_rename_conflicts: Vec<DirectoryRenameConflict>Directory renames that need the user’s attention, sorted by DirectoryRenameConflict::path.
DirectoryRenameConflict::Moved paths also have unmerged index rows; split and
blocked directory renames have none, yet still make the merge conflicted.