Как получить список файлов в хранилище в libgit/ target-git?
Я хочу получить список файлов в репозитории Git, используя target -git или libgit2
То, что я делаю сейчас, называется git
инструмент командной строки и анализ выходных данных git ls-files
(или же git ls-tree --name-only -r HEAD
, что дает те же результаты), например,
$ git ls-files
meta/LICENSE.md
.gitignore
README.md
Я бы предпочел использовать прямой API, предоставляемый libgit2. Я попробовал объективный мерзавец -[GTTree enumerateContentsWithOptions:error:block:]
метода, но перечисленные объекты GTTreeEntry предоставляют только имя и не знают, в каком подкаталоге они находятся.
1 ответ
Решение
enumerateContentsWithOptions
принимает блок с этой подписью:
typedef int(^GTTreeEnumerationBlock)(NSString *root, GTTreeEntry *entry);
root
это путь к каталогу, который entry
в.