2016-04-27 12 views
0

私はJGitで各コミットの挿入数を取得する方法を見つけようとしています。 JGitのコミットからdiffエントリのリストを取得する際にバイナリファイルをスキップする方法はありますか?またはすべてのdiffエントリを取得し、それぞれからパスを取得し、手動でMIMEタイプをチェックする必要がありますか?JGitでコミットからdiffエントリのリストを取得する際にバイナリファイルをスキップする方法は?

diffs = diffFormatter.scan(directParent, commit); 
... 
path = repoDirectory + diff.getNewPath(); 
... 
type = Files.probeContentType(Paths.get(path)); 
if (type ... 

JGit自体でこれを実行できるかどうかを知りたいと思います。

答えて

0

あなたの質問にスケッチされているアプローチはうまく動作するはずです。

別の方法としては、特定のファイルを除外しTreeFilterを指定するDiffFormatter::setPathFilter()を使用することができます。

ただし、作業コピーが存在しない場合や、まれにコンテンツタイプが変更された場合に間違った結果が生じる場合は、作業ディレクトリを使用してコンテンツタイプを調べると失敗することがあります。

+0

すべての最初の、答えてくれてありがとうと...はい、あなたは最後の発言と絶対的に正しいです。私は生のバイト配列を供給するMIMEタイプを検出する方法を見つけました。問題は、検出されたMIMEタイプが、ファイルがバイナリであるかどうかを判断するのに十分でないことです。 – blumch

関連する問題