2012-01-20 9 views
1

私はJavaプログラムから、プロセスビルダークラスを使用し、さまざまなgitコマンドを実行してGit実行可能ファイルを呼び出しています。コマンドプロンプトからJavaプログラムを実行しています。 しかし、出力の特定の部分だけを抽出する方法はありません。JavaプログラムからGITバージョン管理システムの出力を操作する

+0

この特定の部分は何ですか? – RanRag

+0

たとえば、コミット後に参照してください。 gitdiffコマンドを使って、リポジトリに対する変更を確認します。 gitdiffの出力には以前のバージョンと最新のバージョンが含まれていましたが、変更された部分を抽出する必要があります。 – HelloWorld

+2

GitはPythonで書かれていません – basszero

答えて

0

StreamGobblerスレッドを使用して入力を取得するとします。
出力をフィルタリングするロジックをそこに配置するだけです。

+0

いいえ、私はちょうど引数としてコマンドgitdiffを渡します。 gitbash /コマンドラインに表示される出力はどれですか。 出力をフィルタリングする方法についていくつか明示できますか? – HelloWorld

+0

パターンに従わない出力をフィルタリングするためにどのようなロジックを適用できますか? – HelloWorld

0

他のものと同じように、JGitは非常に正確なものが必要な場合には、多くの低レベル操作を可能にします。

しかし、あなたが探しているGitコマンドは、 "git diff commit_parent commit -U0"だけで、変更とコンテキストが与えられないことがあります。

マニュアルを読むこともできます: "git help diff"、Gitが提供しているものが見つかります。

しかし、もう一度、Gitの開発者が明日の出力形式を変更することにしたらどうなるのでしょうか?あなたのプログラムをやり直す必要がありますか?

関連する問題