aboutsummaryrefslogtreecommitdiff
path: root/refstore/files/read_list.go
diff options
context:
space:
mode:
authorGravatar Runxi Yu2026-03-25 14:31:16 +0000
committerGravatar Runxi Yu2026-03-25 14:31:16 +0000
commit48ff647cf4a8bb8f23fcd6b8616f56a8ef72b980 (patch)
treeae199c38042adaa544d5f7d31351661d5831381e /refstore/files/read_list.go
parent*: objectstore -> object/store (diff)
signatureNo signature
*: refstore -> ref/store
Diffstat (limited to 'refstore/files/read_list.go')
-rw-r--r--refstore/files/read_list.go76
1 files changed, 0 insertions, 76 deletions
diff --git a/refstore/files/read_list.go b/refstore/files/read_list.go
deleted file mode 100644
index 358ec007..00000000
--- a/refstore/files/read_list.go
+++ /dev/null
@@ -1,76 +0,0 @@
-package files
-
-import (
- "errors"
- "path"
- "slices"
-
- "codeberg.org/lindenii/furgit/ref"
- "codeberg.org/lindenii/furgit/refstore"
-)
-
-// List lists references from the visible files ref namespace.
-func (store *Store) List(pattern string) ([]ref.Ref, error) {
- matchAll := pattern == ""
- if !matchAll {
- _, err := path.Match(pattern, "HEAD")
- if err != nil {
- return nil, err
- }
- }
-
- looseNames, err := store.collectLooseRefNames()
- if err != nil {
- return nil, err
- }
-
- packed, err := store.readPackedRefs()
- if err != nil {
- return nil, err
- }
-
- byName := make(map[string]ref.Ref, len(looseNames)+len(packed.byName))
- for _, detached := range packed.ordered {
- byName[detached.Name()] = detached
- }
-
- for _, name := range looseNames {
- resolved, resolveErr := store.readLooseRef(name)
- if resolveErr != nil {
- if errors.Is(resolveErr, refstore.ErrReferenceNotFound) {
- delete(byName, name)
-
- continue
- }
-
- return nil, resolveErr
- }
-
- byName[name] = resolved
- }
-
- names := make([]string, 0, len(byName))
- for name := range byName {
- if !matchAll {
- matched, matchErr := path.Match(pattern, name)
- if matchErr != nil {
- return nil, matchErr
- }
-
- if !matched {
- continue
- }
- }
-
- names = append(names, name)
- }
-
- slices.Sort(names)
-
- refs := make([]ref.Ref, 0, len(names))
- for _, name := range names {
- refs = append(refs, byName[name])
- }
-
- return refs, nil
-}