forked from mirrors/jj
working_copy: reduce scope of some variables
With the recent refactorings, we don't need the `tree_builder` and `deleted_files` until a bit later.
This commit is contained in:
parent
16d00581f6
commit
6cce5e758b
1 changed files with 19 additions and 19 deletions
|
@ -626,8 +626,6 @@ impl TreeState {
|
||||||
} = options;
|
} = options;
|
||||||
|
|
||||||
let sparse_matcher = self.sparse_matcher();
|
let sparse_matcher = self.sparse_matcher();
|
||||||
let current_tree = self.store.get_tree(&RepoPath::root(), &self.tree_id)?;
|
|
||||||
let mut tree_builder = self.store.tree_builder(self.tree_id.clone());
|
|
||||||
|
|
||||||
let fsmonitor_clock_needs_save = fsmonitor_kind.is_some();
|
let fsmonitor_clock_needs_save = fsmonitor_kind.is_some();
|
||||||
let FsmonitorMatcher {
|
let FsmonitorMatcher {
|
||||||
|
@ -638,29 +636,19 @@ impl TreeState {
|
||||||
None => &EverythingMatcher,
|
None => &EverythingMatcher,
|
||||||
Some(fsmonitor_matcher) => fsmonitor_matcher.as_ref(),
|
Some(fsmonitor_matcher) => fsmonitor_matcher.as_ref(),
|
||||||
};
|
};
|
||||||
let mut deleted_files: HashSet<_> =
|
|
||||||
trace_span!("collecting existing files").in_scope(|| {
|
|
||||||
self.file_states
|
|
||||||
.iter()
|
|
||||||
.filter_map(|(path, state)| {
|
|
||||||
(fsmonitor_matcher.matches(path)
|
|
||||||
&& state.file_type != FileType::GitSubmodule)
|
|
||||||
.then(|| path.clone())
|
|
||||||
})
|
|
||||||
.collect()
|
|
||||||
});
|
|
||||||
|
|
||||||
let matcher = IntersectionMatcher::new(sparse_matcher.as_ref(), fsmonitor_matcher);
|
|
||||||
let directory_to_visit = DirectoryToVisit {
|
|
||||||
dir: RepoPath::root(),
|
|
||||||
disk_dir: self.working_copy_path.clone(),
|
|
||||||
git_ignore: base_ignores,
|
|
||||||
};
|
|
||||||
let (tree_entries_tx, tree_entries_rx) = channel();
|
let (tree_entries_tx, tree_entries_rx) = channel();
|
||||||
let (file_states_tx, file_states_rx) = channel();
|
let (file_states_tx, file_states_rx) = channel();
|
||||||
let (present_files_tx, present_files_rx) = channel();
|
let (present_files_tx, present_files_rx) = channel();
|
||||||
|
|
||||||
trace_span!("traverse filesystem").in_scope(|| -> Result<(), SnapshotError> {
|
trace_span!("traverse filesystem").in_scope(|| -> Result<(), SnapshotError> {
|
||||||
|
let matcher = IntersectionMatcher::new(sparse_matcher.as_ref(), fsmonitor_matcher);
|
||||||
|
let current_tree = self.store.get_tree(&RepoPath::root(), &self.tree_id)?;
|
||||||
|
let directory_to_visit = DirectoryToVisit {
|
||||||
|
dir: RepoPath::root(),
|
||||||
|
disk_dir: self.working_copy_path.clone(),
|
||||||
|
git_ignore: base_ignores,
|
||||||
|
};
|
||||||
self.visit_directory(
|
self.visit_directory(
|
||||||
&matcher,
|
&matcher,
|
||||||
¤t_tree,
|
¤t_tree,
|
||||||
|
@ -672,6 +660,18 @@ impl TreeState {
|
||||||
)
|
)
|
||||||
})?;
|
})?;
|
||||||
|
|
||||||
|
let mut tree_builder = self.store.tree_builder(self.tree_id.clone());
|
||||||
|
let mut deleted_files: HashSet<_> =
|
||||||
|
trace_span!("collecting existing files").in_scope(|| {
|
||||||
|
self.file_states
|
||||||
|
.iter()
|
||||||
|
.filter_map(|(path, state)| {
|
||||||
|
(fsmonitor_matcher.matches(path)
|
||||||
|
&& state.file_type != FileType::GitSubmodule)
|
||||||
|
.then(|| path.clone())
|
||||||
|
})
|
||||||
|
.collect()
|
||||||
|
});
|
||||||
trace_span!("process tree entries").in_scope(|| {
|
trace_span!("process tree entries").in_scope(|| {
|
||||||
while let Ok((path, tree_value)) = tree_entries_rx.recv() {
|
while let Ok((path, tree_value)) = tree_entries_rx.recv() {
|
||||||
tree_builder.set(path, tree_value);
|
tree_builder.set(path, tree_value);
|
||||||
|
|
Loading…
Reference in a new issue