Прочный эквивалент 'git ls-tree'
В пустом хранилище я могу напечатать $ git ls-tree -r master
, (это то же самое, что я могу получить в пустых репозиториях с помощью команды git ls-files
)
полный список файлов и их ссылок в репозитории git.
С Rugged, как я могу получить этот список файлов в определенной ветви или мастер?
2 ответа
То, что вы ищете, это прочный объект Tree. Если у вас есть коммит, скажем от commit = repo.head.target
Вы можете получить файлы в дереве этого коммита, обратившись к нему в виде массива:
tree = commit.tree
puts tree[0].filename
См. https://github.com/libgit2/rugged для получения дополнительных примеров.
В Rugged 1.2.0 вы можете:
repo.index.entries.map { |e| e[:path] }