2016-10-31 2 views
0

以内に変更されたすべてのファイルを表示します)は、私はJGitで非常に新しいだと私は、このGitのコマンドの実装を探していますコミット

私はRevCommitですが、どのようにしてgit showで表示される情報を取得できますか?

+0

コミットを構成する_all_ファイルまたは_changed_ファイル(つまり、親コミットとは異なるファイル)をリストしますか? –

+0

あなたの答えはrüdigerに感謝しました。変更されたファイルが必要です。 – szumbe

+0

それを反映するために質問を書き直すべきです。 'git show'は、gitオブジェクト(commit/blob/tree)の_contents_をリストします。 _changes_を表示するには 'git diff'を使います。 JGitでそれを達成する方法については、ここを参照してください:http://stackoverflow.com/questions/27361538/how-to-show-changes-between-commits-with-jgit –

答えて

0

コミットを構成するファイルを一覧表示するには、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()であることが指定されています。

関連する問題