summaryrefslogtreecommitdiff
path: root/lib/gall/tree.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gall/tree.lua')
-rw-r--r--lib/gall/tree.lua14
1 files changed, 6 insertions, 8 deletions
diff --git a/lib/gall/tree.lua b/lib/gall/tree.lua
index 14d75ba..a44b333 100644
--- a/lib/gall/tree.lua
+++ b/lib/gall/tree.lua
@@ -107,14 +107,12 @@ if ll.git2 then
end
if not parsed[tree] then
- local repo = repos[tree]
- local oid = ll.git2.OID.hex(objs[tree].sha)
- local treeobj = ll.git2.Tree.lookup(repo.git2.repo, oid)
- for i = 0, treeobj:entrycount() - 1 do
- local entry = treeobj:entry_byindex(i)
- local perm = string.format('0x%08X', entry:filemode())
- local sha = tostring(entry:id())
- local name = entry:name()
+ local treetab = ll.git2.get_tree_table(repos[tree].git2.repo,
+ objs[tree].sha)
+ for _, tab in ipairs(treetab) do
+ local perm = string.format('0x%08X', tab.perms)
+ local sha = tab.sha
+ local name = tab.name
local obj = repos[tree]:get(sha)
local type = obj.type
local t = {