diff options
Diffstat (limited to 'lib/gall/tree.lua')
-rw-r--r-- | lib/gall/tree.lua | 14 |
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 = { |