merge tools: use MergedTree::diff_stream()

This commit is contained in:
Martin von Zweigbergk 2023-11-01 21:42:54 -07:00 committed by Martin von Zweigbergk
parent 602b44258e
commit 5b02987012
2 changed files with 10 additions and 5 deletions

View file

@ -2,6 +2,7 @@ use std::borrow::Cow;
use std::path::Path;
use std::sync::Arc;
use futures::{StreamExt, TryStreamExt};
use itertools::Itertools;
use jj_lib::backend::{BackendError, FileId, MergedTreeId, ObjectId, TreeValue};
use jj_lib::diff::{find_line_ranges, Diff, DiffHunk};
@ -11,6 +12,7 @@ use jj_lib::merge::Merge;
use jj_lib::merged_tree::{MergedTree, MergedTreeBuilder};
use jj_lib::repo_path::RepoPath;
use jj_lib::store::Store;
use pollster::FutureExt;
use thiserror::Error;
#[derive(Debug, Error)]
@ -409,9 +411,10 @@ pub fn edit_diff_builtin(
) -> Result<MergedTreeId, BuiltinToolError> {
let store = left_tree.store().clone();
let changed_files: Vec<_> = left_tree
.diff(right_tree, matcher)
.diff_stream(right_tree, matcher)
.map(|(path, diff)| diff.map(|_| path))
.try_collect()?;
.try_collect()
.block_on()?;
let files = make_diff_files(&store, left_tree, right_tree, &changed_files)?;
let recorder = scm_record::Recorder::new(
scm_record::RecordState {

View file

@ -6,6 +6,7 @@ use std::process::{Command, ExitStatus, Stdio};
use std::sync::Arc;
use config::ConfigError;
use futures::StreamExt;
use itertools::Itertools;
use jj_lib::backend::{FileId, MergedTreeId, TreeValue};
use jj_lib::conflicts::{self, materialize_merge_result};
@ -238,10 +239,11 @@ fn check_out_trees(
matcher: &dyn Matcher,
output_is: Option<DiffSide>,
) -> Result<DiffWorkingCopies, DiffCheckoutError> {
let changed_files = left_tree
.diff(right_tree, matcher)
let changed_files: Vec<_> = left_tree
.diff_stream(right_tree, matcher)
.map(|(path, _diff)| path)
.collect_vec();
.collect()
.block_on();
let temp_dir = new_utf8_temp_dir("jj-diff-").map_err(DiffCheckoutError::SetUpDir)?;
let left_wc_dir = temp_dir.path().join("left");