konamugijgitでファイル変更内容を取得する前回はjgitを使用して範囲内のCommit一覧を取得しました。今回は指定したCommit間の追加/修正/削除ファイル一覧を取得します。流れとしては以下になります。範囲となるRevCommit(始点、終点)インスタンス作成RevCommitからRevTreeインスタンス取得DiffFormatterでDiffEntry一覧を取得ファイルの変更内容はDiffEntryクラスで管理されます。よってDiffEntryの取り方さえわかれば一覧もできますし、その先の追加削除行数の取得にもつながります。}}DiffEntry#getChangeType()でファイルの追加/変更/削除を判別できます。#getNewPath()で変更後のファイルのパスを取得できます。logのrange指定」と同じものを使用します。Release/v0.2.0とRelease/v.0.1.0間に対して実行すると以下を出力します。ADDfunc12.txtADDfunc21.txtADDrelease_0.2.0.txtあまり面白みがありませんね。Release/v0.2.0とfeature/func12の途中である1e68c15で出力するとこうなります。ADDfunc11.txtMODIFYfunc12.txtADDfunc13.txtADDfunc21.txtMODIFYfunctions.txtADDrelease_0.1.0.txtADDrelease_0.2.0.txt今回のRepositoryはファイルの削除を行っていないので特に問題にはなりませんが#getChangeType()の戻りがDELETEやRENAMEの場合はパスが取得できなかったり、名前の変更前後がわからない場合があります。そんなときは#getOldPath()を使用しましょう。追加削除行数はorg.eclipse.jgit.diff.Editクラスで参照できます。これについてはまた後日に。