mirror of
https://github.com/martinvonz/jj.git
synced 2025-05-31 23:25:09 +00:00
copies: inline adjust_for_copy_tracking()
We now have only one caller, and it's in a different module, so it makes more sense to move it there.
This commit is contained in:
parent
e670837ff6
commit
ad86dd1c1b
@ -97,7 +97,21 @@ impl Stream for CopiesTreeDiffStream<'_> {
|
||||
fn poll_next(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Option<Self::Item>> {
|
||||
self.inner.as_mut().poll_next(cx).map(|option| {
|
||||
option.map(|diff_entry| {
|
||||
diff_entry.adjust_for_copy_tracking(&self.source_tree, self.copy_records)
|
||||
let Some(CopyRecord { source, .. }) =
|
||||
self.copy_records.for_target(&diff_entry.target)
|
||||
else {
|
||||
return diff_entry;
|
||||
};
|
||||
|
||||
TreeDiffEntry {
|
||||
source: source.clone(),
|
||||
target: diff_entry.target,
|
||||
value: diff_entry.value.and_then(|(_, target_value)| {
|
||||
self.source_tree
|
||||
.path_value(source)
|
||||
.map(|source_value| (source_value, target_value))
|
||||
}),
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
@ -30,7 +30,7 @@ use futures::{Stream, TryStreamExt};
|
||||
use itertools::{EitherOrBoth, Itertools};
|
||||
|
||||
use crate::backend;
|
||||
use crate::backend::{BackendResult, CopyRecord, MergedTreeId, TreeId, TreeValue};
|
||||
use crate::backend::{BackendResult, MergedTreeId, TreeId, TreeValue};
|
||||
use crate::copies::{CopiesTreeDiffStream, CopyRecords};
|
||||
use crate::matchers::{EverythingMatcher, Matcher};
|
||||
use crate::merge::{Merge, MergeBuilder, MergedTreeVal, MergedTreeValue};
|
||||
@ -319,28 +319,6 @@ pub struct TreeDiffEntry {
|
||||
pub value: BackendResult<(MergedTreeValue, MergedTreeValue)>,
|
||||
}
|
||||
|
||||
impl TreeDiffEntry {
|
||||
pub(crate) fn adjust_for_copy_tracking(
|
||||
self,
|
||||
source_tree: &MergedTree,
|
||||
copy_records: &CopyRecords,
|
||||
) -> TreeDiffEntry {
|
||||
let Some(CopyRecord { source, .. }) = copy_records.for_target(&self.target) else {
|
||||
return self;
|
||||
};
|
||||
|
||||
Self {
|
||||
source: source.clone(),
|
||||
target: self.target,
|
||||
value: self.value.and_then(|(_, target_value)| {
|
||||
source_tree
|
||||
.path_value(source)
|
||||
.map(|source_value| (source_value, target_value))
|
||||
}),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Type alias for the result from `MergedTree::diff_stream()`. We use a
|
||||
/// `Stream` instead of an `Iterator` so high-latency backends (e.g. cloud-based
|
||||
/// ones) can fetch trees asynchronously.
|
||||
|
Loading…
x
Reference in New Issue
Block a user