aboutsummaryrefslogtreecommitdiff
path: root/object
diff options
context:
space:
mode:
Diffstat (limited to 'object')
-rw-r--r--object/resolve/treefs_info.go2
-rw-r--r--object/resolve/treefs_path.go1
-rw-r--r--object/resolve/treefs_test.go3
3 files changed, 6 insertions, 0 deletions
diff --git a/object/resolve/treefs_info.go b/object/resolve/treefs_info.go
index 3d441e91..f554973d 100644
--- a/object/resolve/treefs_info.go
+++ b/object/resolve/treefs_info.go
@@ -50,8 +50,10 @@ func treeFSEntryMode(mode object.FileMode) fs.FileMode {
func (treeFS *TreeFS) statEntry(entry treeEntryValue) (*treeFSInfo, error) {
size := int64(0)
+
if entry.mode == object.FileModeRegular || entry.mode == object.FileModeExecutable || entry.mode == object.FileModeSymlink {
var err error
+
size, err = entry.blobSize(treeFS.resolver)
if err != nil {
return nil, err
diff --git a/object/resolve/treefs_path.go b/object/resolve/treefs_path.go
index cb5735d2..c35791cb 100644
--- a/object/resolve/treefs_path.go
+++ b/object/resolve/treefs_path.go
@@ -15,6 +15,7 @@ func treeFSSplitPath(name string) [][]byte {
}
parts := strings.Split(name, "/")
+
out := make([][]byte, len(parts))
for i, part := range parts {
out[i] = []byte(part)
diff --git a/object/resolve/treefs_test.go b/object/resolve/treefs_test.go
index 44ae0544..9d994bba 100644
--- a/object/resolve/treefs_test.go
+++ b/object/resolve/treefs_test.go
@@ -24,6 +24,7 @@ func TestTreeFS(t *testing.T) {
repoData.SymbolicRef(t, "HEAD", "refs/heads/main")
_ = repoData.Run(t, "add", ".")
treeHex := repoData.Run(t, "write-tree")
+
treeID, err := objectid.ParseHex(algo, treeHex)
if err != nil {
t.Fatalf("ParseHex(write-tree): %v", err)
@@ -37,9 +38,11 @@ func TestTreeFS(t *testing.T) {
if err != nil {
t.Fatalf("repository.Open: %v", err)
}
+
defer func() { _ = repo.Close() }()
resolver := resolve.New(repo.Objects())
+
treeFS, err := resolver.TreeFS(commitID)
if err != nil {
t.Fatalf("resolver.TreeFS: %v", err)