mirror of
https://github.com/martinvonz/jj.git
synced 2025-02-06 11:34:54 +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> {
|
||||
let mut tree_cache = BTreeMap::new();
|
||||
let mut base_trees = BTreeMap::new();
|
||||
let store = self.store.clone();
|
||||
|
||||
let mut populate_trees = |dir: &RepoPath| {
|
||||
|
@ -122,9 +121,7 @@ impl TreeBuilder {
|
|||
|
||||
if !tree_cache.contains_key(¤t_dir) {
|
||||
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);
|
||||
base_trees.insert(current_dir.clone(), store_tree);
|
||||
}
|
||||
|
||||
for component in dir.components() {
|
||||
|
@ -134,9 +131,7 @@ impl TreeBuilder {
|
|||
let tree = current_tree
|
||||
.sub_tree(component)
|
||||
.unwrap_or_else(|| Tree::null(self.store.clone(), next_dir.clone()));
|
||||
let store_tree = tree.data().clone();
|
||||
tree_cache.insert(next_dir.clone(), tree);
|
||||
base_trees.insert(next_dir.clone(), store_tree);
|
||||
}
|
||||
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