LoginSignup
tima314
@tima314

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

JavaScriptで任意のリモートリポジトリの変更内容を所得したい

実現したいこと

electronを使用して、git commit した差分だけオートタイピングするアプリケーションを作っています。アプリケーション名はAuto-Typing。
プログラミング動画教材を作成するにあたり、オートタイピングツールがあれば便利だな、git commit をしてその差分だけオートタイピングしてくれれば、動画作りに便利だなと思いました。
git データ取得には、”parse-git-diff”、’child_process’というライブラリを使用して、git diff コマンドにてgit データを取得しています。
そのAuto-Typingをバックグラウンドに起動させつつ、electronのグローバルショートカットキーにてgit commit の差分だけオートタイピングするという流れです。

前提

このAuto-Typingは実際のところgit diff でデータを取得し、オートタイピングしてくれるまで出来上がっております。
ただ、問題なのはgit データをvsコード上のワークスペース内の情報しか所得できないのです。
つまり、このAuto -Typing自体のgit データは所得できるのですが、他のリポジトリのgit データが取得できないのが問題になっています。
どのような動きになるかと言いますと、
例えば、LP作成動画教材を作成したとします。まず、LPのワークスペースを立ち上げ作業しgit commitします。一度、commit分だけ削除します。そこでAuto -typingをバックグランドで起動し録画開始。LPワークスペース内でグローバルショートカットキーを発動、先ほどのcommit分だけオートタイピングしてくれるという寸法です。

しかし、LPのgit commit 情報(LPのリポジトリ情報)がAuto -Typingワークスペース内では取得できないのです。
あくまで、ワークスペースに紐付いたリポジトリ情報しか所得できないのでしょうか?

該当するソースコード

node.js
const execSync = require("child_process").execSync;
const parseGitDiff = require("parse-git-diff").default;

const cmd = "git diff HEAD^"; // git commit
const gitdiff = execSync(cmd).toString();
const commitID = gitdiff;
  if (!commitID) {
    return;
  }
const result = parseGitDiff(commitID);
console.log(result)

自分で試したこと

Auto-Typingワークスペースのgit リモートリポジトリをLPのリポジトリに変更すれば良いのか?

変更したけど変わらずAuto-Typingのgit データが返される。

つまり

JavaScriptで任意のリポジトリ情報を所得したいということですね。
どなたか、方法、ライブラリ等ご存知でしたら教えていただきたいです。
よろしくお願いします。

0

1Answer

git diff HEAD^ がどこのディレクトリで実行されているかを確認してください。
Auto-Typingリポジトリのディレクトリで実行されていませんか?

0Like

Comments

  1. @tima314

    Questioner

    返信ありがとうございます。返信遅れまして申し訳ありません。

    ワークスペースにAuto-Typing自体をコピペしてワークスペースのgit 情報を習得するという形で自己解決に至りました。

Your answer might help someone💌