shithub: furgit

Download patch

ref: fc2eddf2f0166d491c28481acae529b2ab55f87c
parent: 5db671fb6d41173f94c1a8578bfec1d3b019ac9d
author: Runxi Yu <runxiyu@umich.edu>
date: Mon Mar 23 02:17:52 EDT 2026

object/resolve: Add docs to treefs exported functions

--- a/object/resolve/treefs_new.go
+++ b/object/resolve/treefs_new.go
@@ -2,7 +2,7 @@
 
 import "codeberg.org/lindenii/furgit/objectid"
 
-// TreeFS returns one new filesystem view rooted at root, which may be any
+// TreeFS returns a new filesystem view rooted at root, which may be any
 // tree-ish object accepted by PeelToTreeID.
 func (r *Resolver) TreeFS(root objectid.ObjectID) (*TreeFS, error) {
 	rootTree, err := r.PeelToTreeID(root)
--- a/object/resolve/treefs_open.go
+++ b/object/resolve/treefs_open.go
@@ -8,6 +8,10 @@
 	"codeberg.org/lindenii/furgit/object"
 )
 
+// Open opens name for reading.
+//
+// Directories are returned as fs.ReadDirFile values. Gitlink entries are not
+// readable through TreeFS.
 func (treeFS *TreeFS) Open(name string) (fs.File, error) {
 	entry, err := treeFS.resolvePath(treeFSOpOpen, name)
 	if err != nil {
--- a/object/resolve/treefs_readdir.go
+++ b/object/resolve/treefs_readdir.go
@@ -2,6 +2,7 @@
 
 import "io/fs"
 
+// ReadDir reads and returns all directory entries for name.
 func (treeFS *TreeFS) ReadDir(name string) ([]fs.DirEntry, error) {
 	file, err := treeFS.Open(name)
 	if err != nil {
--- a/object/resolve/treefs_readfile.go
+++ b/object/resolve/treefs_readfile.go
@@ -7,6 +7,9 @@
 	"codeberg.org/lindenii/furgit/object"
 )
 
+// ReadFile reads the blob contents at name.
+//
+// Directories and gitlink entries are not readable through TreeFS.
 func (treeFS *TreeFS) ReadFile(name string) ([]byte, error) {
 	entry, err := treeFS.resolvePath(treeFSOpReadFile, name)
 	if err != nil {
--- a/object/resolve/treefs_stat.go
+++ b/object/resolve/treefs_stat.go
@@ -2,6 +2,11 @@
 
 import "io/fs"
 
+// Stat returns synthetic file metadata for name.
+//
+// TreeFS metadata reflects Git tree entry mode and blob size where applicable.
+// It does not represent filesystem stat metadata: ModTime is zero, ownership is
+// unavailable, and Sys returns the underlying object.TreeEntry when one exists.
 func (treeFS *TreeFS) Stat(name string) (fs.FileInfo, error) {
 	entry, err := treeFS.resolvePath(treeFSOpStat, name)
 	if err != nil {
--- a/object/resolve/treefs_sub.go
+++ b/object/resolve/treefs_sub.go
@@ -2,6 +2,7 @@
 
 import "io/fs"
 
+// Sub returns a new TreeFS rooted at dir.
 func (treeFS *TreeFS) Sub(dir string) (fs.FS, error) {
 	entry, err := treeFS.resolvePath(treeFSOpSub, dir)
 	if err != nil {
--