mirror of
https://github.com/martinvonz/jj.git
synced 2025-02-06 03:22:59 +00:00
merged_tree: extract value() function of non-legacy trees
This commit is contained in:
parent
ca3f549c9e
commit
4ad3db2e84
1 changed files with 12 additions and 11 deletions
|
@ -177,17 +177,7 @@ impl MergedTree {
|
|||
}
|
||||
other => MergedTreeVal::Resolved(other),
|
||||
},
|
||||
MergedTree::Merge(trees) => {
|
||||
if let Some(tree) = trees.as_resolved() {
|
||||
return MergedTreeVal::Resolved(tree.value(basename));
|
||||
}
|
||||
let value = trees.map(|tree| tree.value(basename));
|
||||
if let Some(resolved) = value.resolve_trivial() {
|
||||
return MergedTreeVal::Resolved(*resolved);
|
||||
}
|
||||
|
||||
MergedTreeVal::Conflict(value.map(|x| x.cloned()))
|
||||
}
|
||||
MergedTree::Merge(trees) => trees_value(trees, basename),
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -460,6 +450,17 @@ fn merged_tree_basenames<'a>(
|
|||
}
|
||||
}
|
||||
|
||||
fn trees_value<'a>(trees: &'a Merge<Tree>, basename: &RepoPathComponent) -> MergedTreeVal<'a> {
|
||||
if let Some(tree) = trees.as_resolved() {
|
||||
return MergedTreeVal::Resolved(tree.value(basename));
|
||||
}
|
||||
let value = trees.map(|tree| tree.value(basename));
|
||||
if let Some(resolved) = value.resolve_trivial() {
|
||||
return MergedTreeVal::Resolved(*resolved);
|
||||
}
|
||||
MergedTreeVal::Conflict(value.map(|x| x.cloned()))
|
||||
}
|
||||
|
||||
fn merge_trees(merge: &Merge<Tree>) -> Result<Merge<Tree>, TreeMergeError> {
|
||||
if let Some(tree) = merge.resolve_trivial() {
|
||||
return Ok(Merge::resolved(tree.clone()));
|
||||
|
|
Loading…
Reference in a new issue