У меня есть следующий код:
branch, err := gR.LookupBranch(branchName, git.BranchLocal)
if err != nil {
return err
}
defer branch.Free()
commit, err := gR.LookupCommit(branch.Target())
if err != nil {
return err
}
defer commit.Free()
tree, err := gR.LookupTree(commit.TreeId())
if err != nil {
return err
}
defer tree.Free()
err = tree.Walk(func(td string, te *git.TreeEntry) int {
if te.Type == git.ObjectBlob {
fmt.Println(te.Name)
}
return 0
})
Это рекурсивно распечатывает все файлы в хранилище.Например, если бы у нас были следующие файлы в нашем репо:
test_file.txt
test_file_2.txt
test_folder/test_subfile_1.txt
test_folder/test_subfolder/test_subfile_2.txt
Тогда он напечатал бы:
test_file.txt
test_file2.txt
test_subfile_1.txt
test_subfile_2.txt
Вместо этого моя цель - напечатать:
test_file.txt
test_file_2.txt
test_folder
Но тогда вы также можете выбрать запуск из папки, поэтому сможете печатать:
test_subfile_1.txt
test_subfolder
Как этого добиться?(Цель состоит в том, чтобы лениво загрузить структуру каталогов в веб-клиент, т.е. позволить веб-клиенту загружать содержимое папок, когда пользователь открывает их - также обратите внимание, что это пустое хранилище)