0
以内に変更されたすべてのファイルを表示します)は、私はJGitで非常に新しいだと私は、このGitのコマンドの実装を探していますコミット
私はRevCommit
ですが、どのようにしてgit show
で表示される情報を取得できますか?
以内に変更されたすべてのファイルを表示します)は、私はJGitで非常に新しいだと私は、このGitのコマンドの実装を探していますコミット
私はRevCommit
ですが、どのようにしてgit show
で表示される情報を取得できますか?
コミットを構成するファイルを一覧表示するには、TreeWalk
を使用する必要があります。 TreeWalk
は、ツリーのオブジェクトID(SHA-1)で初期化し、そのエントリを走査するために使用することができます。例えば
:
TreeWalk treeWalk = new TreeWalk(repository);
treeWalk.setRecursive(true);
treeWalk.reset(commit.getId());
while(treeWalk.next()) {
String path = treeWalk.getPathString();
String blobId = treeWalk.getObjectId(0);
// ...
}
getPathString()
は、現在のエントリに(リポジトリ相対)パスを返します。
getObjectId()
は、オブジェクトIDを取得するツリーイテレータを識別するインデックスが必要です。ここでは、最初の唯一のツリーイテレータは、指定されたコミットのツリーに対して暗黙的に作成されたものがreset()
であることが指定されています。
コミットを構成する_all_ファイルまたは_changed_ファイル(つまり、親コミットとは異なるファイル)をリストしますか? –
あなたの答えはrüdigerに感謝しました。変更されたファイルが必要です。 – szumbe
それを反映するために質問を書き直すべきです。 'git show'は、gitオブジェクト(commit/blob/tree)の_contents_をリストします。 _changes_を表示するには 'git diff'を使います。 JGitでそれを達成する方法については、ここを参照してください:http://stackoverflow.com/questions/27361538/how-to-show-changes-between-commits-with-jgit –