diff options
| author | 2026-03-03 23:30:57 +0800 | |
|---|---|---|
| committer | 2026-03-03 23:30:57 +0800 | |
| commit | 1baade3ccf71857f417086e16dba804cde1c877d (patch) | |
| tree | a0658fc96b982112cd3aa90ed01b58d9cb516013 /refstore/packed/store.go | |
| parent | reachability: Refactor (diff) | |
| signature | No signature | |
refstore/packed: Use os.Root v0.1.42
Diffstat (limited to 'refstore/packed/store.go')
| -rw-r--r-- | refstore/packed/store.go | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/refstore/packed/store.go b/refstore/packed/store.go index d792e738..7705dacb 100644 --- a/refstore/packed/store.go +++ b/refstore/packed/store.go @@ -2,7 +2,8 @@ package packed import ( - "io" + "fmt" + "os" "path" "codeberg.org/lindenii/furgit/objectid" @@ -18,15 +19,19 @@ type Store struct { var _ refstore.Store = (*Store)(nil) -// New parses packed-refs content from r using the given object ID algorithm. -func New(r io.Reader, algo objectid.Algorithm) (*Store, error) { +// New parses packed-refs from one repository root using the given object ID +// algorithm. +func New(root *os.Root, algo objectid.Algorithm) (*Store, error) { if algo.Size() == 0 { return nil, objectid.ErrInvalidAlgorithm } - if r == nil { - return nil, io.ErrUnexpectedEOF + packedRefs, err := root.Open("packed-refs") + if err != nil { + return nil, fmt.Errorf("refstore/packed: open packed-refs: %w", err) } - byName, ordered, err := parsePackedRefs(r, algo) + defer func() { _ = packedRefs.Close() }() + + byName, ordered, err := parsePackedRefs(packedRefs, algo) if err != nil { return nil, err } |
