В ruby ​​/grit, как получить список файлов, измененных в конкретном коммите?

Мне нужен список файлов, на которые влияет определенный коммит в git. Через командную строку я могу сделать это с:

git show --pretty = "format:" - только для имени (ша)

Но как я могу сделать это через Grit в Ruby?

2 ответа

Решение

Ты можешь использовать 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!

Так как модуль Grit Git использует method_missing для оболочки, вы также можете попробовать:

grit.git.show ({: pretty =>: format,: name_only => true}, ша)

Другие вопросы по тегам