LoginSignup
tima314
@tima314

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

parse-git-diff ライブラリの使い方がわからない

解決したいこと

electronを使用して、git commitしたコードの差分(diff)を解析し、json形式に表示するアプリを開発している。それには、parse-git-diffというライブラリが不可欠なのですがうまく動かず困っています。

発生している問題・エラー

https://www.npmjs.com/package/parse-git-diff
上記がparse-git-diffのドキュメントですが、

const result = parseGitDiff('... git diff ...');

('...git diff...')に何を入力していいかわからないのです。
git コマンドを入れるのか?

const result = parseGitDiff('git diff');

結果は、

{ type: 'GitDiff', files: [] }

該当fileを入れるのか?

const result = parseGitDiff('main.js');

結果はやはり'{ type: 'GitDiff', files: [] }'

ターミナルでは正常に動くgit コマンド

const result = parseGitDiff('git diff 1dd35**..48a63**');

結果'{ type: 'GitDiff', files: [] }'

ドキュメントのように'a/newfile.md'と'b/newfile.md'を作成。

const result = parseGitDiff('diff --git a/newfile.md b/newfile.md');

結果'{ type: 'GitDiff', files: [] }'

該当するソースコード

main.js
const parseGitDiff = require('parse-git-diff').default; // require

const result = parseGitDiff('git diff');
console.log(result);

自分で試したこと

teratailでも質問させてもらっているのですが回答がつかず。。。Google等で検索したのですが良い情報が得られず。。。
上記のようにソースコードを自分なりに変更したのですがドキュメントのようにはなりません。
electronでは動かないのか?

どなたかparse-git-diffをお使いになられた方、助言をお願いします。

補足

os:mac m1
node: v18.0.0
parse-git-diff: ^0.0.15

0

2Answer

Comments

  1. @tima314

    Questioner

    @h_kono0707さん回答ありがとうございます。
    お察しの通りやったのですがうまくいきませんでした。

    const result = parseGitDiff('diff --git a/newfile.md b/newfile.md');
    console.log(result)
    
    

    結果

    { type: 'GitDiff', files: [] }
    
  2. 以下でうまくいきませんか?

    const GIT_DIFF = `diff --git a/newfile.md b/newfile.md
    new file mode 100644
    index 0000000..aa39060
    --- /dev/null
    +++ b/newfile.md
    @@ -0,0 +1 @@
    +newfile
    `;
    
    const result = parseGitDiff(GIT_DIFF);
    console.log(result);
    
  3. @tima314

    Questioner
    {
      type: 'GitDiff',
      files: [ { type: 'AddedFile', chunks: [Array], path: 'newfile.md' } ]
    }
    

    うまくいきました!!
    まさかそのままぶちこむとは、盲点でした!
    助かりました。ありがとうございました。

const GIT_DIFF = `diff --git a/newfile.md b/newfile.md
new file mode 100644
index 0000000..aa39060
--- /dev/null
+++ b/newfile.md
@@ -0,0 +1 @@
+newfile
`;

const result = parseGitDiff(GIT_DIFF);
console.log(result);

コンソール

{
  type: 'GitDiff',
  files: [ { type: 'AddedFile', chunks: [Array], path: 'newfile.md' } ]
}

うまく動きました。」

0Like

Your answer might help someone💌