Git diff for a specific file using Simple Git in Node.js returns the entire diff

69 Views Asked by At

I'm currently using the Simple Git library in my Node.js project to get the diff of a specific file. However, when I use the git.diff(["--"], file) function, it returns the entire diff instead of the diff for the specific file. Here's the code snippet:

GitControl.prototype.diff = async function (git, param, callback) {
  const file = param[0];
  console.log(file);
  try {
    const result = await git.diff(["--"], file);
    callback(null, JSON.stringify({ success: true, diffText: result }));
  } catch (err) {
    console.log(`GIT CONTROL DIFF ERROR OCCUR: ${err}`);
    callback(err, JSON.stringify({ success: false, error: err.message }));
  }
};

When I run the equivalent command in the terminal (git diff -- bin/Source/MainView.js), it works as expected and returns the diff for the specified file.

I've confirmed that the file variable contains the correct file path (e.g., "bin/Source/View/qnaView.js").

enter image description here

Is there a difference between the git diff -- command in the terminal and the git.diff(["--"], file) function in Simple Git? If so, how can I modify my code to get the diff for a specific file?

1

There are 1 best solutions below

0
강찬욱 On BEST ANSWER
const result = await git.diff(["--", file]);

simply solved