Прочный эквивалент '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] }
Другие вопросы по тегам