diff options
| author | 2026-03-07 14:55:38 +0800 | |
|---|---|---|
| committer | 2026-03-07 17:11:31 +0800 | |
| commit | 04b424a6398637dd0f5d29857f489a03fd5e38f5 (patch) | |
| tree | b83ab5a18bac1ca93a493a061471fb2fbf0576ea /repository/refs.go | |
| parent | ci, objectstored: Disable ireturn (diff) | |
| signature | No signature | |
refstore/files: Add new files backend
(And use it in repository)
Diffstat (limited to 'repository/refs.go')
| -rw-r--r-- | repository/refs.go | 33 |
1 files changed, 6 insertions, 27 deletions
diff --git a/repository/refs.go b/repository/refs.go index fb2256df..7c978ed3 100644 --- a/repository/refs.go +++ b/repository/refs.go @@ -1,50 +1,29 @@ package repository import ( - "errors" "fmt" "os" "codeberg.org/lindenii/furgit/objectid" "codeberg.org/lindenii/furgit/refstore" - refchain "codeberg.org/lindenii/furgit/refstore/chain" - refloose "codeberg.org/lindenii/furgit/refstore/loose" - refpacked "codeberg.org/lindenii/furgit/refstore/packed" + reffiles "codeberg.org/lindenii/furgit/refstore/files" ) //nolint:ireturn func openRefStore(root *os.Root, algo objectid.Algorithm) (out refstore.ReadingStore, err error) { - looseRoot, err := root.OpenRoot(".") + refRoot, err := root.OpenRoot(".") if err != nil { - return nil, fmt.Errorf("repository: open root for loose refs: %w", err) + return nil, fmt.Errorf("repository: open root for refs: %w", err) } - looseStore, err := refloose.New(looseRoot, algo) + store, err := reffiles.New(refRoot, algo) if err != nil { - _ = looseRoot.Close() + _ = refRoot.Close() return nil, err } - backends := []refstore.ReadingStore{looseStore} - - _, err = root.Stat("packed-refs") - if err == nil { - packedStore, packedErr := refpacked.New(root, algo) - if packedErr != nil { - _ = looseStore.Close() - - return nil, packedErr - } - - backends = append(backends, packedStore) - } else if !errors.Is(err, os.ErrNotExist) { - _ = looseStore.Close() - - return nil, fmt.Errorf("repository: stat packed-refs: %w", err) - } - - return refchain.New(backends...), nil + return store, nil } // Refs returns the configured ref store. |
