From 04b424a6398637dd0f5d29857f489a03fd5e38f5 Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Sat, 7 Mar 2026 14:55:38 +0800 Subject: refstore/files: Add new files backend (And use it in repository) --- repository/refs.go | 33 ++++++--------------------------- 1 file changed, 6 insertions(+), 27 deletions(-) (limited to 'repository') 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. -- cgit v1.3.1-10-gc9f91