aboutsummaryrefslogtreecommitdiff
path: root/repository/tree_resolve.go
diff options
context:
space:
mode:
authorGravatar Runxi Yu2026-03-06 01:48:44 +0800
committerGravatar Runxi Yu2026-03-06 01:48:44 +0800
commit120509f0aad0e945d8e0fc90a822fa904fb70b68 (patch)
tree20a541f059591b35795a1a5d3b7dcf48ec711b6a /repository/tree_resolve.go
parentrefstore/loose: Fix package-level comment (diff)
signatureNo signature
repository: Refactor v0.1.55
Diffstat (limited to 'repository/tree_resolve.go')
-rw-r--r--repository/tree_resolve.go53
1 files changed, 0 insertions, 53 deletions
diff --git a/repository/tree_resolve.go b/repository/tree_resolve.go
deleted file mode 100644
index d4ef529e..00000000
--- a/repository/tree_resolve.go
+++ /dev/null
@@ -1,53 +0,0 @@
-package repository
-
-import (
- "errors"
- "fmt"
-
- "codeberg.org/lindenii/furgit/object"
- "codeberg.org/lindenii/furgit/objectstored"
-)
-
-// ResolveTreeEntry resolves one path within a stored root tree.
-//
-// parts must contain at least one path segment. Intermediate segments must be
-// tree entries.
-func (repo *Repository) ResolveTreeEntry(tree *objectstored.StoredTree, parts [][]byte) (object.TreeEntry, error) {
- if tree == nil {
- return object.TreeEntry{}, errors.New("repository: nil root tree")
- }
-
- if len(parts) == 0 {
- return object.TreeEntry{}, errors.New("repository: empty tree path")
- }
-
- current := tree
-
- for i, part := range parts {
- if len(part) == 0 {
- return object.TreeEntry{}, errors.New("repository: empty tree path segment")
- }
-
- entry := current.Tree().Entry(part)
- if entry == nil {
- return object.TreeEntry{}, fmt.Errorf("repository: tree entry %q not found", part)
- }
-
- if i == len(parts)-1 {
- return *entry, nil
- }
-
- if entry.Mode != object.FileModeDir {
- return object.TreeEntry{}, fmt.Errorf("repository: path segment %q is not a tree", part)
- }
-
- next, err := repo.ReadStoredTree(entry.ID)
- if err != nil {
- return object.TreeEntry{}, err
- }
-
- current = next
- }
-
- return object.TreeEntry{}, fmt.Errorf("repository: tree entry not found")
-}