From 4c15bad2a95768ab6e299866c55aed31215fe6cc Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Sun, 23 Aug 2020 18:12:29 +0200 Subject: Revert "Suggestion.diff_command: Diff an index instead of a file" This reverts commit 588cd526fd78b3a0e0ec1dfb9fc194ca385de902. Since each suggestion has its own associated commit, we can't compare a tree and a single commit. We'll probably have to invoke `git diff` once for each suggestion. --- github-suggestion/src/suggestion.rs | 22 +--------------------- src/bin/git-sugdiff.rs | 6 +++--- 2 files changed, 4 insertions(+), 24 deletions(-) diff --git a/github-suggestion/src/suggestion.rs b/github-suggestion/src/suggestion.rs index 29fab04..21591b1 100644 --- a/github-suggestion/src/suggestion.rs +++ b/github-suggestion/src/suggestion.rs @@ -157,27 +157,7 @@ impl Suggestion { message: "unable to read right side of patch".to_owned(), })?; - let mut index = repo.index()?; - index.add_frombuffer( - &git2::IndexEntry { - ctime: git2::IndexTime::new(0, 0), - mtime: git2::IndexTime::new(0, 0), - dev: 0, - ino: 0, - mode: 0o100644, - uid: 0, - gid: 0, - file_size: new_buffer.len() as u32, - id: git2::Oid::zero(), - flags: 0, - flags_extended: 0, - path: self.path.as_bytes().to_vec(), - }, - &new_buffer, - )?; - let tree = index.write_tree()?; - - Ok(tree) + Ok(repo.blob(&new_buffer)?) } /// Extract suggestion code from a comment body. diff --git a/src/bin/git-sugdiff.rs b/src/bin/git-sugdiff.rs index 362eb15..9c7ff1f 100644 --- a/src/bin/git-sugdiff.rs +++ b/src/bin/git-sugdiff.rs @@ -43,12 +43,12 @@ fn main() { &config, |suggestion| { // TODO: Needs to work for multiple suggestions at once - let tree = suggestion.diff_command().unwrap(); + let blob = suggestion.diff_command().unwrap(); Command::new("git") .arg("diff") - .arg(suggestion.commit()) - .arg(tree.to_string()) + .arg(format!("{}:{}", suggestion.commit(), suggestion.path())) + .arg(blob.to_string()) .spawn() .unwrap(); }, -- cgit v1.2.3