mirror of
https://github.com/martinvonz/jj.git
synced 2025-02-11 15:07:06 +00:00
tree_builder: simply map Tree to backend::Tree in later pass
I'll rewrite populate_trees() as a recursive function, so I want to minimize the objects to be passed to the function.
This commit is contained in:
parent
0846d7fc8b
commit
f475122b7e
1 changed files with 4 additions and 6 deletions
|
@ -114,7 +114,6 @@ impl TreeBuilder {
|
||||||
|
|
||||||
fn get_base_trees(&self) -> BTreeMap<RepoPath, backend::Tree> {
|
fn get_base_trees(&self) -> BTreeMap<RepoPath, backend::Tree> {
|
||||||
let mut tree_cache = BTreeMap::new();
|
let mut tree_cache = BTreeMap::new();
|
||||||
let mut base_trees = BTreeMap::new();
|
|
||||||
let store = self.store.clone();
|
let store = self.store.clone();
|
||||||
|
|
||||||
let mut populate_trees = |dir: &RepoPath| {
|
let mut populate_trees = |dir: &RepoPath| {
|
||||||
|
@ -122,9 +121,7 @@ impl TreeBuilder {
|
||||||
|
|
||||||
if !tree_cache.contains_key(¤t_dir) {
|
if !tree_cache.contains_key(¤t_dir) {
|
||||||
let tree = store.get_tree(¤t_dir, &self.base_tree_id).unwrap();
|
let tree = store.get_tree(¤t_dir, &self.base_tree_id).unwrap();
|
||||||
let store_tree = tree.data().clone();
|
|
||||||
tree_cache.insert(current_dir.clone(), tree);
|
tree_cache.insert(current_dir.clone(), tree);
|
||||||
base_trees.insert(current_dir.clone(), store_tree);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for component in dir.components() {
|
for component in dir.components() {
|
||||||
|
@ -134,9 +131,7 @@ impl TreeBuilder {
|
||||||
let tree = current_tree
|
let tree = current_tree
|
||||||
.sub_tree(component)
|
.sub_tree(component)
|
||||||
.unwrap_or_else(|| Tree::null(self.store.clone(), next_dir.clone()));
|
.unwrap_or_else(|| Tree::null(self.store.clone(), next_dir.clone()));
|
||||||
let store_tree = tree.data().clone();
|
|
||||||
tree_cache.insert(next_dir.clone(), tree);
|
tree_cache.insert(next_dir.clone(), tree);
|
||||||
base_trees.insert(next_dir.clone(), store_tree);
|
|
||||||
}
|
}
|
||||||
current_dir = next_dir;
|
current_dir = next_dir;
|
||||||
}
|
}
|
||||||
|
@ -147,6 +142,9 @@ impl TreeBuilder {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
base_trees
|
tree_cache
|
||||||
|
.into_iter()
|
||||||
|
.map(|(dir, tree)| (dir, tree.data().clone()))
|
||||||
|
.collect()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue