From d061c3782f3c76e961777d222bab7dc1276b3297 Mon Sep 17 00:00:00 2001 From: Yuya Nishihara Date: Mon, 5 Aug 2024 17:33:14 +0900 Subject: [PATCH] merged_tree: remove .diff_summary() There are no non-test callers since 452fecb7c4f6 "cli: colorize diff summary and sort by path." --- lib/src/merged_tree.rs | 41 ----- lib/tests/runner.rs | 1 - lib/tests/test_diff_summary.rs | 274 --------------------------------- 3 files changed, 316 deletions(-) delete mode 100644 lib/tests/test_diff_summary.rs diff --git a/lib/src/merged_tree.rs b/lib/src/merged_tree.rs index a0986e4f6..1fa1efe8b 100644 --- a/lib/src/merged_tree.rs +++ b/lib/src/merged_tree.rs @@ -66,17 +66,6 @@ impl MergedTreeVal<'_> { } } -/// Summary of the changes between two trees. -#[derive(Debug, PartialEq, Eq, Clone)] -pub struct DiffSummary { - /// Modified files - pub modified: Vec, - /// Added files - pub added: Vec, - /// Removed files - pub removed: Vec, -} - impl MergedTree { /// Creates a new `MergedTree` representing a single tree without conflicts. pub fn resolved(tree: Tree) -> Self { @@ -354,36 +343,6 @@ impl MergedTree { } } - /// Collects lists of modified, added, and removed files between this tree - /// and another tree. - pub fn diff_summary( - &self, - other: &MergedTree, - matcher: &dyn Matcher, - ) -> BackendResult { - let mut modified = vec![]; - let mut added = vec![]; - let mut removed = vec![]; - for (file, diff) in self.diff(other, matcher) { - let (before, after) = diff?; - if before.is_absent() { - added.push(file); - } else if after.is_absent() { - removed.push(file); - } else { - modified.push(file); - } - } - modified.sort(); - added.sort(); - removed.sort(); - Ok(DiffSummary { - modified, - added, - removed, - }) - } - /// Merges this tree with `other`, using `base` as base. pub fn merge(&self, base: &MergedTree, other: &MergedTree) -> BackendResult { // Convert legacy trees to merged trees and unwrap to `Merge` diff --git a/lib/tests/runner.rs b/lib/tests/runner.rs index 03f134bbd..eb75298cd 100644 --- a/lib/tests/runner.rs +++ b/lib/tests/runner.rs @@ -11,7 +11,6 @@ mod test_commit_builder; mod test_commit_concurrent; mod test_conflicts; mod test_default_revset_graph_iterator; -mod test_diff_summary; mod test_git; mod test_git_backend; mod test_gpg; diff --git a/lib/tests/test_diff_summary.rs b/lib/tests/test_diff_summary.rs deleted file mode 100644 index c5403663a..000000000 --- a/lib/tests/test_diff_summary.rs +++ /dev/null @@ -1,274 +0,0 @@ -// Copyright 2020 The Jujutsu Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -use jj_lib::matchers::{EverythingMatcher, FilesMatcher}; -use jj_lib::merged_tree::DiffSummary; -use jj_lib::repo_path::{RepoPath, RepoPathBuf}; -use testutils::{create_tree, TestRepo}; - -fn to_owned_path_vec(paths: &[&RepoPath]) -> Vec { - paths.iter().map(|&path| path.to_owned()).collect() -} - -#[test] -fn test_types() { - let test_repo = TestRepo::init(); - let repo = &test_repo.repo; - - let clean_path = RepoPath::from_internal_string("clean"); - let modified_path = RepoPath::from_internal_string("modified"); - let added_path = RepoPath::from_internal_string("added"); - let removed_path = RepoPath::from_internal_string("removed"); - - let tree1 = create_tree( - repo, - &[ - (clean_path, "clean"), - (modified_path, "contents before"), - (removed_path, "removed contents"), - ], - ); - - let tree2 = create_tree( - repo, - &[ - (clean_path, "clean"), - (modified_path, "contents after"), - (added_path, "added contents"), - ], - ); - - assert_eq!( - tree1.diff_summary(&tree2, &EverythingMatcher).unwrap(), - DiffSummary { - modified: to_owned_path_vec(&[modified_path]), - added: to_owned_path_vec(&[added_path]), - removed: to_owned_path_vec(&[removed_path]), - } - ); -} - -#[test] -fn test_tree_file_transition() { - let test_repo = TestRepo::init(); - let repo = &test_repo.repo; - - let dir_file_path = RepoPath::from_internal_string("dir/file"); - let dir_path = RepoPath::from_internal_string("dir"); - - let tree1 = create_tree(repo, &[(dir_file_path, "contents")]); - let tree2 = create_tree(repo, &[(dir_path, "contents")]); - - assert_eq!( - tree1.diff_summary(&tree2, &EverythingMatcher).unwrap(), - DiffSummary { - modified: vec![], - added: to_owned_path_vec(&[dir_path]), - removed: to_owned_path_vec(&[dir_file_path]), - } - ); - assert_eq!( - tree2.diff_summary(&tree1, &EverythingMatcher).unwrap(), - DiffSummary { - modified: vec![], - added: to_owned_path_vec(&[dir_file_path]), - removed: to_owned_path_vec(&[dir_path]), - } - ); -} - -#[test] -fn test_sorting() { - let test_repo = TestRepo::init(); - let repo = &test_repo.repo; - - let a_path = RepoPath::from_internal_string("a"); - let b_path = RepoPath::from_internal_string("b"); - let f_a_path = RepoPath::from_internal_string("f/a"); - let f_b_path = RepoPath::from_internal_string("f/b"); - let f_f_a_path = RepoPath::from_internal_string("f/f/a"); - let f_f_b_path = RepoPath::from_internal_string("f/f/b"); - let n_path = RepoPath::from_internal_string("n"); - let s_b_path = RepoPath::from_internal_string("s/b"); - let z_path = RepoPath::from_internal_string("z"); - - let tree1 = create_tree( - repo, - &[ - (a_path, "before"), - (f_a_path, "before"), - (f_f_a_path, "before"), - ], - ); - - let tree2 = create_tree( - repo, - &[ - (a_path, "after"), - (b_path, "after"), - (f_a_path, "after"), - (f_b_path, "after"), - (f_f_a_path, "after"), - (f_f_b_path, "after"), - (n_path, "after"), - (s_b_path, "after"), - (z_path, "after"), - ], - ); - - assert_eq!( - tree1.diff_summary(&tree2, &EverythingMatcher).unwrap(), - DiffSummary { - modified: to_owned_path_vec(&[a_path, f_a_path, f_f_a_path]), - added: to_owned_path_vec(&[b_path, f_b_path, f_f_b_path, n_path, s_b_path, z_path]), - removed: vec![], - } - ); - assert_eq!( - tree2.diff_summary(&tree1, &EverythingMatcher).unwrap(), - DiffSummary { - modified: to_owned_path_vec(&[a_path, f_a_path, f_f_a_path]), - added: vec![], - removed: to_owned_path_vec(&[b_path, f_b_path, f_f_b_path, n_path, s_b_path, z_path]), - } - ); -} - -#[test] -fn test_matcher_dir_file_transition() { - let test_repo = TestRepo::init(); - let repo = &test_repo.repo; - - let a_path = RepoPath::from_internal_string("a"); - let a_a_path = RepoPath::from_internal_string("a/a"); - - let tree1 = create_tree(repo, &[(a_path, "before")]); - let tree2 = create_tree(repo, &[(a_a_path, "after")]); - - let matcher = FilesMatcher::new([&a_path]); - assert_eq!( - tree1.diff_summary(&tree2, &matcher).unwrap(), - DiffSummary { - modified: vec![], - added: vec![], - removed: to_owned_path_vec(&[a_path]), - } - ); - assert_eq!( - tree2.diff_summary(&tree1, &matcher).unwrap(), - DiffSummary { - modified: vec![], - added: to_owned_path_vec(&[a_path]), - removed: vec![], - } - ); - - let matcher = FilesMatcher::new([a_a_path]); - assert_eq!( - tree1.diff_summary(&tree2, &matcher).unwrap(), - DiffSummary { - modified: vec![], - added: to_owned_path_vec(&[a_a_path]), - removed: vec![], - } - ); - assert_eq!( - tree2.diff_summary(&tree1, &matcher).unwrap(), - DiffSummary { - modified: vec![], - added: vec![], - removed: to_owned_path_vec(&[a_a_path]), - } - ); - - let matcher = FilesMatcher::new([a_path, a_a_path]); - assert_eq!( - tree1.diff_summary(&tree2, &matcher).unwrap(), - DiffSummary { - modified: vec![], - added: to_owned_path_vec(&[a_a_path]), - removed: to_owned_path_vec(&[a_path]), - } - ); - assert_eq!( - tree2.diff_summary(&tree1, &matcher).unwrap(), - DiffSummary { - modified: vec![], - added: to_owned_path_vec(&[a_path]), - removed: to_owned_path_vec(&[a_a_path]), - } - ); -} - -#[test] -fn test_matcher_normal_cases() { - let test_repo = TestRepo::init(); - let repo = &test_repo.repo; - - let a_path = RepoPath::from_internal_string("a"); - let dir1_a_path = RepoPath::from_internal_string("dir1/a"); - let dir2_b_path = RepoPath::from_internal_string("dir2/b"); - let z_path = RepoPath::from_internal_string("z"); - - let tree1 = create_tree(repo, &[(a_path, "before"), (dir1_a_path, "before")]); - // File "a" gets modified - // File "dir1/a" gets modified - // File "dir2/b" gets created - // File "z" gets created - let tree2 = create_tree( - repo, - &[ - (a_path, "after"), - (dir1_a_path, "after"), - (dir2_b_path, "after"), - (z_path, "after"), - ], - ); - - let matcher = FilesMatcher::new([a_path, z_path]); - assert_eq!( - tree1.diff_summary(&tree2, &matcher).unwrap(), - DiffSummary { - modified: to_owned_path_vec(&[a_path]), - added: to_owned_path_vec(&[z_path]), - removed: vec![], - } - ); - assert_eq!( - tree2.diff_summary(&tree1, &matcher).unwrap(), - DiffSummary { - modified: to_owned_path_vec(&[a_path]), - added: vec![], - removed: to_owned_path_vec(&[z_path]), - } - ); - - let matcher = FilesMatcher::new([dir1_a_path, dir2_b_path]); - assert_eq!( - tree1.diff_summary(&tree2, &matcher).unwrap(), - DiffSummary { - modified: to_owned_path_vec(&[dir1_a_path]), - added: to_owned_path_vec(&[dir2_b_path]), - removed: vec![], - } - ); - assert_eq!( - tree2.diff_summary(&tree1, &matcher).unwrap(), - DiffSummary { - modified: to_owned_path_vec(&[dir1_a_path]), - added: vec![], - removed: to_owned_path_vec(&[dir2_b_path]), - } - ); -}