From 41a2cf5bdc181df654f8c0f4caea397cdb4fd3be Mon Sep 17 00:00:00 2001 From: Han Xu Date: Sun, 29 Jan 2023 09:31:33 -0800 Subject: [PATCH] add diff_file method for Repository. Also refactored `FileDiff` type. Signed-off-by: Han Xu --- radicle-surf/data/git-platinum.tgz | Bin 96620 -> 97446 bytes radicle-surf/examples/diff.rs | 14 +- radicle-surf/scripts/update-git-platinum.sh | 1 + radicle-surf/src/diff.rs | 220 +++++++++++--- radicle-surf/src/diff/git.rs | 24 +- radicle-surf/src/repo.rs | 24 +- radicle-surf/t/src/diff.rs | 311 +++++++++++--------- radicle-surf/t/src/source.rs | 34 +-- radicle-surf/t/src/threading.rs | 2 + 9 files changed, 409 insertions(+), 221 deletions(-) diff --git a/radicle-surf/data/git-platinum.tgz b/radicle-surf/data/git-platinum.tgz index acf440e9d8c44ebba5031b18f8bf0bd951d636be..20cd2196b05c2802a460c4d2712c27a68846083e 100644 GIT binary patch delta 82838 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 delta 81983 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

LdQeH~tTxE!AJ& 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 diff --git a/radicle-surf/examples/diff.rs b/radicle-surf/examples/diff.rs index 36ba923..cad72aa 100644 --- a/radicle-surf/examples/diff.rs +++ b/radicle-surf/examples/diff.rs @@ -57,22 +57,22 @@ fn init_repository_or_exit(path_to_repo: &str) -> Repository { } fn print_diff_summary(diff: &Diff, elapsed_nanos: u128) { - diff.added.iter().for_each(|created| { + diff.added().for_each(|created| { println!("+++ {:?}", created.path); }); - diff.deleted.iter().for_each(|deleted| { + diff.deleted().for_each(|deleted| { println!("--- {:?}", deleted.path); }); - diff.modified.iter().for_each(|modified| { + diff.modified().for_each(|modified| { println!("mod {:?}", modified.path); }); println!( "created {} / deleted {} / modified {} / total {}", - diff.added.len(), - diff.deleted.len(), - diff.modified.len(), - diff.added.len() + diff.deleted.len() + diff.modified.len() + diff.added().count(), + diff.deleted().count(), + diff.modified().count(), + diff.added().count() + diff.deleted().count() + diff.modified().count() ); println!("diff took {elapsed_nanos} nanos "); } diff --git a/radicle-surf/scripts/update-git-platinum.sh b/radicle-surf/scripts/update-git-platinum.sh index beb4b3c..416f9aa 100755 --- a/radicle-surf/scripts/update-git-platinum.sh +++ b/radicle-surf/scripts/update-git-platinum.sh @@ -23,6 +23,7 @@ rm -rf "$PLATINUM_REPO" # Clone an up-to-date version of git-platinum. git clone https://github.com/radicle-dev/git-platinum.git "$PLATINUM_REPO" git -C "$PLATINUM_REPO" checkout empty-branch +git -C "$PLATINUM_REPO" checkout diff-test git -C "$PLATINUM_REPO" checkout dev # Add the necessary refs. diff --git a/radicle-surf/src/diff.rs b/radicle-surf/src/diff.rs index db062a1..9ad615f 100644 --- a/radicle-surf/src/diff.rs +++ b/radicle-surf/src/diff.rs @@ -20,7 +20,7 @@ use std::path::PathBuf; #[cfg(feature = "serde")] -use serde::{ser, Serialize, Serializer}; +use serde::{ser, ser::SerializeStruct, Serialize, Serializer}; pub mod git; @@ -29,59 +29,115 @@ pub mod git; /// A [`Diff`] can be retrieved by the following functions: /// * [`crate::Repository::diff`] /// * [`crate::Repository::diff_commit`] -#[cfg_attr(feature = "serde", derive(Serialize), serde(rename_all = "camelCase"))] #[derive(Clone, Debug, Default, PartialEq, Eq)] pub struct Diff { - pub added: Vec, - pub deleted: Vec, - pub moved: Vec, - pub copied: Vec, - pub modified: Vec, - pub stats: Stats, + files: Vec, + stats: Stats, } impl Diff { - pub fn new() -> Self { + /// Creates an empty diff. + pub(crate) fn new() -> Self { Diff::default() } - fn modified( + /// Returns an iterator of the file in the diff. + pub fn files(&self) -> impl Iterator { + self.files.iter() + } + + /// Returns owned files in the diff. + pub fn into_files(self) -> Vec { + self.files + } + + pub fn added(&self) -> impl Iterator { + self.files().filter_map(|x| match x { + FileDiff::Added(a) => Some(a), + _ => None, + }) + } + + pub fn deleted(&self) -> impl Iterator { + self.files().filter_map(|x| match x { + FileDiff::Deleted(a) => Some(a), + _ => None, + }) + } + + pub fn moved(&self) -> impl Iterator { + self.files().filter_map(|x| match x { + FileDiff::Moved(a) => Some(a), + _ => None, + }) + } + + pub fn modified(&self) -> impl Iterator { + self.files().filter_map(|x| match x { + FileDiff::Modified(a) => Some(a), + _ => None, + }) + } + + pub fn copied(&self) -> impl Iterator { + self.files().filter_map(|x| match x { + FileDiff::Copied(a) => Some(a), + _ => None, + }) + } + + pub fn stats(&self) -> &Stats { + &self.stats + } + + fn insert_modified( &mut self, path: PathBuf, hunks: impl Into>, eof: Option, ) { - self.modified.push(Modified { + let diff = DiffContent::Plain { + hunks: hunks.into(), + }; + let diff = FileDiff::Modified(Modified { path, eof, diff }); + self.files.push(diff) + } + + fn insert_moved(&mut self, old_path: PathBuf, new_path: PathBuf) { + let diff = FileDiff::Moved(Moved { + old_path, + new_path, + diff: DiffContent::Empty, + }); + self.files.push(diff); + } + + fn insert_copied(&mut self, old_path: PathBuf, new_path: PathBuf) { + let diff = FileDiff::Copied(Copied { + old_path, + new_path, + diff: DiffContent::Empty, + }); + self.files.push(diff); + } + + fn insert_modified_binary(&mut self, path: PathBuf) { + let diff = FileDiff::Modified(Modified { path, - diff: FileDiff::Plain { - hunks: hunks.into(), - }, - eof, - }) - } - - fn moved(&mut self, old_path: PathBuf, new_path: PathBuf) { - self.moved.push(Moved { old_path, new_path }); - } - - fn copied(&mut self, old_path: PathBuf, new_path: PathBuf) { - self.copied.push(Copied { old_path, new_path }); - } - - fn modified_binary(&mut self, path: PathBuf) { - self.modified.push(Modified { - path, - diff: FileDiff::Binary, eof: None, - }) + diff: DiffContent::Binary, + }); + self.files.push(diff) } - fn added(&mut self, path: PathBuf, diff: FileDiff) { - self.added.push(Added { path, diff }) + fn insert_added(&mut self, path: PathBuf, diff: DiffContent) { + let diff = FileDiff::Added(Added { path, diff }); + self.files.push(diff); } - fn deleted(&mut self, path: PathBuf, diff: FileDiff) { - self.deleted.push(Deleted { path, diff }) + fn insert_deleted(&mut self, path: PathBuf, diff: DiffContent) { + let diff = FileDiff::Deleted(Deleted { path, diff }); + self.files.push(diff); } } @@ -91,8 +147,7 @@ impl Diff { pub struct Added { /// The path to this file, relative to the repository root. pub path: PathBuf, - /// The set of [`Addition`]s to this file. - pub diff: FileDiff, + pub diff: DiffContent, } /// A file that was deleted within a [`Diff`]. @@ -101,18 +156,32 @@ pub struct Added { pub struct Deleted { /// The path to this file, relative to the repository root. pub path: PathBuf, - /// The set of [`Deletion`]s to this file. - pub diff: FileDiff, + pub diff: DiffContent, } /// A file that was moved within a [`Diff`]. -#[cfg_attr(feature = "serde", derive(Serialize), serde(rename_all = "camelCase"))] #[derive(Clone, Debug, PartialEq, Eq)] pub struct Moved { /// The old path to this file, relative to the repository root. pub old_path: PathBuf, /// The new path to this file, relative to the repository root. pub new_path: PathBuf, + pub diff: DiffContent, +} + +#[cfg(feature = "serde")] +impl Serialize for Moved { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + let mut state = serializer.serialize_struct("Moved", 2)?; + state.serialize_field("oldPath", &self.old_path)?; + state.serialize_field("newPath", &self.new_path)?; + // `DiffContent` is not serialized yet for `Moved`, only + // to keep the serialization same as before. + state.end() + } } /// A file that was copied within a [`Diff`]. @@ -123,6 +192,7 @@ pub struct Copied { pub old_path: PathBuf, /// The new path to this file, relative to the repository root. pub new_path: PathBuf, + pub diff: DiffContent, } #[cfg_attr(feature = "serde", derive(Serialize), serde(rename_all = "camelCase"))] @@ -139,8 +209,7 @@ pub enum EofNewLine { pub struct Modified { /// The path to this file, relative to the repository root. pub path: PathBuf, - /// The set of [`Modification`]s to this file. - pub diff: FileDiff, + pub diff: DiffContent, /// Was there an EOF newline present. pub eof: Option, } @@ -152,12 +221,75 @@ pub struct Modified { serde(tag = "type", rename_all = "camelCase") )] #[derive(Clone, Debug, PartialEq, Eq)] -pub enum FileDiff { +pub enum DiffContent { /// The file is a binary file and so no set of changes can be provided. Binary, /// The set of changes, as [`Hunks`] for a plaintext file. #[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))] - Plain { hunks: Hunks }, + Plain { + hunks: Hunks, + }, + Empty, +} + +#[derive(Clone, Debug, PartialEq, Eq)] +pub enum FileDiff { + Added(Added), + Deleted(Deleted), + Modified(Modified), + Moved(Moved), + Copied(Copied), +} + +#[cfg(feature = "serde")] +impl Serialize for FileDiff { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + let mut state = serializer.serialize_struct("FileDiff", 7)?; + match &self { + FileDiff::Added(x) => { + state.serialize_field("path", &x.path)?; + state.serialize_field("diff", &x.diff)? + }, + FileDiff::Deleted(x) => { + state.serialize_field("path", &x.path)?; + state.serialize_field("diff", &x.diff)? + }, + FileDiff::Modified(x) => { + state.serialize_field("path", &x.path)?; + state.serialize_field("diff", &x.diff)?; + state.serialize_field("eof", &x.eof)? + }, + FileDiff::Moved(x) => { + state.serialize_field("oldPath", &x.old_path)?; + state.serialize_field("newPath", &x.new_path)? + }, + FileDiff::Copied(x) => { + state.serialize_field("oldPath", &x.old_path)?; + state.serialize_field("newPath", &x.new_path)? + }, + } + state.end() + } +} + +#[cfg(feature = "serde")] +impl Serialize for Diff { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + let mut state = serializer.serialize_struct("Diff", 6)?; + state.serialize_field("added", &self.added().collect::>())?; + state.serialize_field("deleted", &self.deleted().collect::>())?; + state.serialize_field("moved", &self.moved().collect::>())?; + state.serialize_field("copied", &self.copied().collect::>())?; + state.serialize_field("modified", &self.modified().collect::>())?; + state.serialize_field("stats", &self.stats())?; + state.end() + } } /// Statistics describing a particular [`Diff`]. diff --git a/radicle-surf/src/diff/git.rs b/radicle-surf/src/diff/git.rs index eabe58f..a572db1 100644 --- a/radicle-surf/src/diff/git.rs +++ b/radicle-surf/src/diff/git.rs @@ -241,16 +241,16 @@ fn created( let patch = git2::Patch::from_diff(git_diff, idx)?; if let Some(patch) = patch { - diff.added( + diff.insert_added( path, - diff::FileDiff::Plain { + diff::DiffContent::Plain { hunks: Hunks::try_from(patch)?, }, ); } else { - diff.added( + diff.insert_added( path, - diff::FileDiff::Plain { + diff::DiffContent::Plain { hunks: Hunks::default(), }, ); @@ -271,16 +271,16 @@ fn deleted( .to_path_buf(); let patch = git2::Patch::from_diff(git_diff, idx)?; if let Some(patch) = patch { - diff.deleted( + diff.insert_deleted( path, - diff::FileDiff::Plain { + diff::DiffContent::Plain { hunks: Hunks::try_from(patch)?, }, ); } else { - diff.deleted( + diff.insert_deleted( path, - diff::FileDiff::Plain { + diff::DiffContent::Plain { hunks: Hunks::default(), }, ); @@ -340,10 +340,10 @@ fn modified( (false, true) => Some(EofNewLine::NewMissing), (false, false) => None, }; - diff.modified(path, hunks, eof); + diff.insert_modified(path, hunks, eof); Ok(()) } else if diff_file.is_binary() { - diff.modified_binary(path); + diff.insert_modified_binary(path); Ok(()) } else { Err(error::Diff::PatchUnavailable(path)) @@ -360,7 +360,7 @@ fn renamed(diff: &mut Diff, delta: &git2::DiffDelta<'_>) -> Result<(), error::Di .path() .ok_or(error::Diff::PathUnavailable)?; - diff.moved(old.to_path_buf(), new.to_path_buf()); + diff.insert_moved(old.to_path_buf(), new.to_path_buf()); Ok(()) } @@ -374,6 +374,6 @@ fn copied(diff: &mut Diff, delta: &git2::DiffDelta<'_>) -> Result<(), error::Dif .path() .ok_or(error::Diff::PathUnavailable)?; - diff.copied(old.to_path_buf(), new.to_path_buf()); + diff.insert_copied(old.to_path_buf(), new.to_path_buf()); Ok(()) } diff --git a/radicle-surf/src/repo.rs b/radicle-surf/src/repo.rs index 59040b5..9ef689a 100644 --- a/radicle-surf/src/repo.rs +++ b/radicle-surf/src/repo.rs @@ -27,7 +27,7 @@ use radicle_git_ext::Oid; use crate::{ blob::{Blob, BlobRef}, - diff::Diff, + diff::{Diff, FileDiff}, fs::{Directory, File, FileContent}, refs::{BranchNames, Branches, Categories, Namespaces, TagNames, Tags}, tree::{Entry, Tree}, @@ -201,6 +201,28 @@ impl Repository { } } + /// Get the [`FileDiff`] between two revisions for a file at `path`. + /// + /// If `path` is only a directory name, not a file, returns + /// a [`FileDiff`] for any file under `path`. + pub fn diff_file, R: Revision>( + &self, + path: &P, + from: R, + to: R, + ) -> Result { + let from_commit = self.find_commit(self.object_id(&from)?)?; + let to_commit = self.find_commit(self.object_id(&to)?)?; + let diff = self + .diff_commits(Some(path.as_ref()), Some(&from_commit), &to_commit) + .and_then(|diff| Diff::try_from(diff).map_err(Error::from))?; + let file_diff = diff + .into_files() + .pop() + .ok_or(error::Repo::PathNotFound(path.as_ref().to_path_buf()))?; + Ok(file_diff) + } + /// Parse an [`Oid`] from the given string. pub fn oid(&self, oid: &str) -> Result { Ok(self.inner.revparse_single(oid)?.id().into()) diff --git a/radicle-surf/t/src/diff.rs b/radicle-surf/t/src/diff.rs index 8c153cd..e82ef1e 100644 --- a/radicle-surf/t/src/diff.rs +++ b/radicle-surf/t/src/diff.rs @@ -4,17 +4,14 @@ use radicle_git_ext::Oid; use radicle_surf::{ diff::{ Added, - Addition, - Deleted, - Deletion, Diff, + DiffContent, EofNewLine, FileDiff, Hunk, Line, Modification, Modified, - Moved, Stats, }, Branch, @@ -33,35 +30,32 @@ fn test_initial_diff() -> Result<(), Error> { assert!(commit.parents.is_empty()); let diff = repo.diff_commit(oid)?; + let diff_stats = *diff.stats(); + let diff_files = diff.into_files(); - let expected_diff = Diff { - added: vec![Added { - path: Path::new("README.md").to_path_buf(), - diff: FileDiff::Plain { - hunks: vec![Hunk { - header: Line::from(b"@@ -0,0 +1 @@\n".to_vec()), - lines: vec![Addition { - line: - b"This repository is a data source for the Upstream front-end tests.\n" - .to_vec() - .into(), - line_no: 1, - }], - }] - .into(), - }, - }], - deleted: vec![], - moved: vec![], - copied: vec![], - modified: vec![], - stats: Stats { - files_changed: 1, - insertions: 1, - deletions: 0, + let expected_files = vec![FileDiff::Added(Added { + path: Path::new("README.md").to_path_buf(), + diff: DiffContent::Plain { + hunks: vec![Hunk { + header: Line::from(b"@@ -0,0 +1 @@\n".to_vec()), + lines: vec![Modification::addition( + b"This repository is a data source for the Upstream front-end tests.\n" + .to_vec(), + 1, + )], + }] + .into(), }, + })]; + + let expected_stats = Stats { + files_changed: 1, + insertions: 1, + deletions: 0, }; - assert_eq!(expected_diff, diff); + + assert_eq!(expected_files, diff_files); + assert_eq!(expected_stats, diff_stats); Ok(()) } @@ -70,10 +64,35 @@ fn test_initial_diff() -> Result<(), Error> { fn test_diff_of_rev() -> Result<(), Error> { let repo = Repository::open(GIT_PLATINUM)?; let diff = repo.diff_commit("80bacafba303bf0cdf6142921f430ff265f25095")?; - assert_eq!(diff.added.len(), 0); - assert_eq!(diff.deleted.len(), 0); - assert_eq!(diff.moved.len(), 0); - assert_eq!(diff.modified.len(), 1); + assert_eq!(diff.files().count(), 1); + Ok(()) +} + +#[test] +fn test_diff_file() -> Result<(), Error> { + let repo = Repository::open(GIT_PLATINUM)?; + let path_buf = Path::new("README.md").to_path_buf(); + let diff = repo.diff_file( + &path_buf, + "d6880352fc7fda8f521ae9b7357668b17bb5bad5", + "223aaf87d6ea62eef0014857640fd7c8dd0f80b5", + )?; + let expected_diff = FileDiff::Modified(Modified { + path: path_buf, + eof: None, + diff: DiffContent::Plain { + hunks: vec![Hunk { + header: Line::from(b"@@ -1 +1,2 @@\n".to_vec()), + lines: vec![ + Modification::deletion(b"This repository is a data source for the Upstream front-end tests.\n".to_vec(), 1), + Modification::addition(b"This repository is a data source for the Upstream front-end tests and the\n".to_vec(), 1), + Modification::addition(b"[`radicle-surf`](https://github.com/radicle-dev/git-platinum) unit tests.\n".to_vec(), 2), + ] + }].into() + }, + }); + assert_eq!(expected_diff, diff); + Ok(()) } @@ -85,14 +104,10 @@ fn test_diff() -> Result<(), Error> { let parent_oid = commit.parents.get(0).unwrap(); let diff = repo.diff(*parent_oid, oid)?; - let expected_diff = Diff { - added: vec![], - deleted: vec![], - moved: vec![], - copied: vec![], - modified: vec![Modified { + let expected_files = vec![FileDiff::Modified(Modified { path: Path::new("README.md").to_path_buf(), - diff: FileDiff::Plain { + eof: None, + diff: DiffContent::Plain { hunks: vec![Hunk { header: Line::from(b"@@ -1 +1,2 @@\n".to_vec()), lines: vec![ @@ -102,15 +117,16 @@ fn test_diff() -> Result<(), Error> { ] }].into() }, - eof: None, - }], - stats: Stats { - files_changed: 1, - insertions: 2, - deletions: 1, - }, + })]; + let expected_stats = Stats { + files_changed: 1, + insertions: 2, + deletions: 1, }; - assert_eq!(expected_diff, diff); + let diff_stats = *diff.stats(); + let diff_files = diff.into_files(); + assert_eq!(expected_files, diff_files); + assert_eq!(expected_stats, diff_stats); Ok(()) } @@ -118,89 +134,59 @@ fn test_diff() -> Result<(), Error> { #[test] fn test_branch_diff() -> Result<(), Error> { let repo = Repository::open(GIT_PLATINUM)?; - let diff = repo.diff( - Branch::local(refname!("master")), - Branch::local(refname!("dev")), - )?; + let rev_from = Branch::local(refname!("master")); + let rev_to = Branch::local(refname!("dev")); + let diff = repo.diff(&rev_from, &rev_to)?; println!("Diff two branches: master -> dev"); println!( "result: added {} deleted {} moved {} modified {}", - diff.added.len(), - diff.deleted.len(), - diff.moved.len(), - diff.modified.len() + diff.added().count(), + diff.deleted().count(), + diff.moved().count(), + diff.modified().count() ); - assert_eq!(diff.added.len(), 1); - assert_eq!(diff.deleted.len(), 11); - assert_eq!(diff.moved.len(), 1); - assert_eq!(diff.modified.len(), 2); - for c in diff.added.iter() { + assert_eq!(diff.added().count(), 1); + assert_eq!(diff.deleted().count(), 11); + assert_eq!(diff.moved().count(), 1); + assert_eq!(diff.modified().count(), 2); + for c in diff.added() { println!("added: {:?}", &c.path); } - for d in diff.deleted.iter() { + for d in diff.deleted() { println!("deleted: {:?}", &d.path); } - for m in diff.moved.iter() { + for m in diff.moved() { println!("moved: {:?} -> {:?}", &m.old_path, &m.new_path); } - for m in diff.modified.iter() { + for m in diff.modified() { println!("modified: {:?}", &m.path); } + + // Verify moved. + let diff_moved = diff.moved().next().unwrap(); + + // We can find a `FileDiff` for the old_path in a move. + let file_diff = repo.diff_file(&diff_moved.old_path, &rev_from, &rev_to)?; + println!("old path file diff: {:?}", &file_diff); + + // We can find a `FileDiff` for the new_path in a move. + let file_diff = repo.diff_file(&diff_moved.new_path, &rev_from, &rev_to)?; + println!("new path file diff: {:?}", &file_diff); + + // We can find a `FileDiff` if given a directory name. + let dir_diff = repo.diff_file(&"special/", &rev_from, &rev_to)?; + println!("dir diff: {dir_diff:?}"); + Ok(()) } #[test] -fn test_diff_serde() { - let diff = Diff { - added: vec![ Added { - path: Path::new("LICENSE").to_path_buf(), - diff: FileDiff::Plain { - hunks: vec![Hunk { - header: Line::from(b"@@ -0,0 +1,1".to_vec()), - lines: vec![ - Addition { line: Line::from(b"MIT".to_vec()), line_no: 1 } - ] - }].into() - } - }], - deleted: vec![ Deleted { - path: Path::new("DCO").to_path_buf(), - diff: FileDiff::Plain { - hunks: vec![Hunk { - header: Line::from(b"@@ -0,0 +1,1".to_vec()), - lines: vec![ - Deletion { line: Line::from(b"TODO".to_vec()), line_no: 1 } - ] - }].into() - } - }], - moved: vec![ Moved { - old_path: Path::new("CONTRIBUTING").to_path_buf(), - new_path: Path::new("CONTRIBUTING.md").to_path_buf(), - }], - copied: vec![], - modified: vec![ Modified { - path: Path::new("README.md").to_path_buf(), - diff: FileDiff::Plain { - hunks: vec![Hunk { - header: Line::from(b"@@ -1 +1,2 @@\n".to_vec()), - lines: vec![ - Modification::deletion(b"This repository is a data source for the Upstream front-end tests.\n".to_vec(), 1), - Modification::addition(b"This repository is a data source for the Upstream front-end tests and the\n".to_vec(), 1), - Modification::addition(b"[`radicle-surf`](https://github.com/radicle-dev/git-platinum) unit tests.\n".to_vec(), 2), - Modification::context(b"\n".to_vec(), 3, 4), - ] - }].into() - }, - eof: None, - }], - stats: Stats { - files_changed: 3, - insertions: 2, - deletions: 1, - }, - }; +fn test_diff_serde() -> Result<(), Error> { + let repo = Repository::open(GIT_PLATINUM)?; + let rev_from = Branch::local(refname!("master")); + let rev_to = Branch::local(refname!("diff-test")); + let diff = repo.diff(rev_from, rev_to)?; let eof: Option = None; let json = serde_json::json!({ @@ -209,66 +195,108 @@ fn test_diff_serde() { "diff": { "type": "plain", "hunks": [{ - "header": "@@ -0,0 +1,1", + "header": "@@ -0,0 +1,2 @@\n", "lines": [{ - "line": "MIT", + "line": "This is a license file.\n", "lineNo": 1, "type": "addition", + }, + { + "line": "\n", + "lineNo": 2, + "type": "addition", }] }] }, }], "deleted": [{ - "path": "DCO", + "path": "text/arrows.txt", "diff": { "type": "plain", "hunks": [{ - "header": "@@ -0,0 +1,1", - "lines": [{ - "line": "TODO", + "header": "@@ -1,7 +0,0 @@\n", + "lines": [ + { + "line": " ;;;;; ;;;;; ;;;;;\n", "lineNo": 1, "type": "deletion", - }] + }, + { + "line": " ;;;;; ;;;;; ;;;;;\n", + "lineNo": 2, + "type": "deletion", + }, + { + "line": " ;;;;; ;;;;; ;;;;;\n", + "lineNo": 3, + "type": "deletion", + }, + { + "line": " ;;;;; ;;;;; ;;;;;\n", + "lineNo": 4, + "type": "deletion", + }, + { + "line": "..;;;;;.. ..;;;;;.. ..;;;;;..\n", + "lineNo": 5, + "type": "deletion", + }, + { + "line": " ':::::' ':::::' ':::::'\n", + "lineNo": 6, + "type": "deletion", + }, + { + "line": " ':` ':` ':`\n", + "lineNo": 7, + "type": "deletion", + }, + ] }] }, }], - "moved": [{ "oldPath": "CONTRIBUTING", "newPath": "CONTRIBUTING.md" }], + "moved": [{ + "oldPath": "text/emoji.txt", + "newPath": "emoji.txt", + }], "copied": [], "modified": [{ "path": "README.md", "diff": { "type": "plain", "hunks": [{ - "header": "@@ -1 +1,2 @@\n", + "header": "@@ -1,2 +1,2 @@\n", "lines": [ - { "lineNo": 1, - "line": "This repository is a data source for the Upstream front-end tests.\n", - "type": "deletion" - }, { "lineNo": 1, "line": "This repository is a data source for the Upstream front-end tests and the\n", - "type": "addition" + "type": "deletion" }, { "lineNo": 2, "line": "[`radicle-surf`](https://github.com/radicle-dev/git-platinum) unit tests.\n", + "type": "deletion" + }, + { "lineNo": 1, + "line": "This repository is a data source for the upstream front-end tests and the\n", + "type": "addition" + }, + { "lineNo": 2, + "line": "[`radicle-surf`](https://github.com/radicle-dev/radicle-surf) unit tests.\n", "type": "addition" }, - { "lineNoOld": 3, "lineNoNew": 4, - "line": "\n", - "type": "context" - } ] }] }, - "eof" : eof, + "eof": eof, }], "stats": { - "deletions": 1, - "filesChanged": 3, - "insertions": 2, + "deletions": 9, + "filesChanged": 4, + "insertions": 4, } }); - assert_eq!(serde_json::to_value(&diff).unwrap(), json); + assert_eq!(serde_json::to_value(diff).unwrap(), json); + + Ok(()) } #[test] @@ -286,7 +314,10 @@ index f89e4c0..7c56eb7 100644 "#; let diff = git2::Diff::from_buffer(buf.as_bytes()).unwrap(); let diff = Diff::try_from(diff).unwrap(); - assert_eq!(diff.modified[0].eof, Some(EofNewLine::BothMissing)); + assert_eq!( + diff.modified().next().unwrap().eof, + Some(EofNewLine::BothMissing) + ); } #[test] @@ -302,7 +333,7 @@ index f89e4c0..7c56eb7 100644 "#; let diff = git2::Diff::from_buffer(buf.as_bytes()).unwrap(); let diff = Diff::try_from(diff).unwrap(); - assert_eq!(diff.modified[0].eof, None); + assert_eq!(diff.modified().next().unwrap().eof, None); } // TODO(xphoniex): uncomment once libgit2 has fixed the bug diff --git a/radicle-surf/t/src/source.rs b/radicle-surf/t/src/source.rs index e634c73..0a4fe2f 100644 --- a/radicle-surf/t/src/source.rs +++ b/radicle-surf/t/src/source.rs @@ -209,23 +209,23 @@ fn commit_branches() { let glob = Glob::all_heads().branches().and(Glob::all_remotes()); let branches = repo.revision_branches(init_commit, glob).unwrap(); - assert_eq!(branches.len(), 9); - assert_eq!(branches[0].refname().as_str(), "refs/heads/dev"); - assert_eq!(branches[1].refname().as_str(), "refs/heads/empty-branch"); - assert_eq!(branches[2].refname().as_str(), "refs/heads/master"); + assert_eq!(branches.len(), 11); + + let refnames: Vec<_> = branches.iter().map(|b| b.refname().to_string()).collect(); assert_eq!( - branches[3].refname().as_str(), - "refs/remotes/banana/orange/pineapple" + refnames, + vec![ + "refs/heads/dev", + "refs/heads/diff-test", + "refs/heads/empty-branch", + "refs/heads/master", + "refs/remotes/banana/orange/pineapple", + "refs/remotes/banana/pineapple", + "refs/remotes/origin/HEAD", + "refs/remotes/origin/dev", + "refs/remotes/origin/diff-test", + "refs/remotes/origin/empty-branch", + "refs/remotes/origin/master" + ] ); - assert_eq!( - branches[4].refname().as_str(), - "refs/remotes/banana/pineapple" - ); - assert_eq!(branches[5].refname().as_str(), "refs/remotes/origin/HEAD"); - assert_eq!(branches[6].refname().as_str(), "refs/remotes/origin/dev"); - assert_eq!( - branches[7].refname().as_str(), - "refs/remotes/origin/empty-branch" - ); - assert_eq!(branches[8].refname().as_str(), "refs/remotes/origin/master"); } diff --git a/radicle-surf/t/src/threading.rs b/radicle-surf/t/src/threading.rs index 762b00d..0b39dfc 100644 --- a/radicle-surf/t/src/threading.rs +++ b/radicle-surf/t/src/threading.rs @@ -20,12 +20,14 @@ fn basic_test() -> Result<(), Error> { branches, vec![ Branch::local(refname!("dev")), + Branch::local(refname!("diff-test")), Branch::local(refname!("empty-branch")), Branch::local(refname!("master")), Branch::remote(banana.clone(), refname!("orange/pineapple")), Branch::remote(banana, refname!("pineapple")), Branch::remote(origin.clone(), refname!("HEAD")), Branch::remote(origin.clone(), refname!("dev")), + Branch::remote(origin.clone(), refname!("diff-test")), Branch::remote(origin.clone(), refname!("empty-branch")), Branch::remote(origin, refname!("master")), ]