2011-02-09 10 views
1

gitで特定のコミットの影響を受けるファイルのリストが必要です。ルビー/グリットでは、特定のコミットで変更されたファイルのリストを取得するにはどうすればよいですか?

Gitのショー--pretty =「フォーマット:」コマンドラインから、私はこれを行うことができます--name-のみ(SHA)

しかし、どのように私はRubyでグリットを介してこれを行うことができますか?

答えて

1

your_commit.diffsを使用すると、Grit::Diffインスタンスの配列が返されます。 Grit::Diffは、a_pathおよびb_pathの特性を有する。

一部(未テスト)サンプルコード:

paths = []; 
@commit.diffs.each do |diff| 
    paths += [diff.a_path, diff.b_path] 
end 
paths.uniq! 
+0

このトリックはありました。本当にありがとう! – tim

0

グリットのgitのモジュールが殻から取り出すためにmethod_missingを採用しているので、あなたも試すことができます。

grit.git.show({:かわいい=>:フォーマットを、:name_only => true}、sha)

関連する問題