2014-09-30 6 views
2

В голом репозитории я могу ввести $ git ls-tree -r master. (это то же самое, что я могу получить в безрезультатных репозиториях с командой git ls-files)Прочный эквивалент 'git ls-tree'

для полного списка файлов и их sha ref в репозитории git.

С Rugged, как получить этот список файлов в конкретной ветке или мастер?

ответ

2

То, что вы ищете, - это объект дерева Rugged. Если вы коммита, скажем, от commit = repo.head.target, вы можете получить файлы, которые совершают: Дерево путем доступа к нему как массив:

tree = commit.tree 
puts tree[0].filename 

См https://github.com/libgit2/rugged#tree-objects больше примеров