shithub: furgit

Download patch

ref: 52be24ec3be4290ad3be421a448907b0edcb368b
parent: e6ee208f91acdc61f4e9ba2d9d450cce94477673
author: Runxi Yu <me@runxiyu.org>
date: Sat Feb 21 16:56:38 EST 2026

repository: traverseTreeIter should use ReadHeader for blob size

--- a/repository/traversal_helpers_test.go
+++ b/repository/traversal_helpers_test.go
@@ -3,6 +3,7 @@
 import (
 	"codeberg.org/lindenii/furgit/object"
 	"codeberg.org/lindenii/furgit/objectid"
+	"codeberg.org/lindenii/furgit/objecttype"
 	"codeberg.org/lindenii/furgit/repository"
 )
 
@@ -14,18 +15,21 @@
 		id := stack[len(stack)-1]
 		stack = stack[:len(stack)-1]
 
-		stored, err := repo.ReadStored(id)
+		ty, _, err := repo.Objects().ReadHeader(id)
 		if err != nil {
 			return 0, err
 		}
 		total++
-
-		tree, ok := stored.Object().(*object.Tree)
-		if !ok {
+		if ty != objecttype.TypeTree {
 			continue
 		}
-		for i := len(tree.Entries) - 1; i >= 0; i-- {
-			entry := tree.Entries[i]
+
+		tree, err := repo.ReadStoredTree(id)
+		if err != nil {
+			return 0, err
+		}
+		for i := len(tree.Tree().Entries) - 1; i >= 0; i-- {
+			entry := tree.Tree().Entries[i]
 			if entry.Mode == object.FileModeGitlink {
 				continue
 			}
--