Fast implementation of Git in pure Go codeberg.org/lindenii/furgit
git go
6
fork

Configure Feed

Select the types of activity you want to include in your feed.

object/store: ReadingStore -> Reader

Runxi Yu 30bc0876 fb955caa

+34 -34
+1 -1
cmd/index-pack/run.go
··· 14 14 func run(repoPath, destinationPath, objectFormat string, fixThin, writeRev bool) error { 15 15 var ( 16 16 algo objectid.Algorithm 17 - base objectstore.ReadingStore 17 + base objectstore.Reader 18 18 repo *repository.Repository 19 19 ) 20 20
+1 -1
format/packfile/ingest/api.go
··· 19 19 // WriteRev writes a .rev alongside the .pack and .idx. 20 20 WriteRev bool 21 21 // Base supplies existing objects for thin-pack fixup. 22 - Base objectstore.ReadingStore 22 + Base objectstore.Reader 23 23 // Progress receives human-readable progress messages. 24 24 // 25 25 // When nil, no progress output is emitted.
+1 -1
internal/peel/peel.go
··· 12 12 ) 13 13 14 14 // ToCommit peels annotated tags transitively until a commit is reached. 15 - func ToCommit(store objectstore.ReadingStore, id objectid.ObjectID) (objectid.ObjectID, error) { 15 + func ToCommit(store objectstore.Reader, id objectid.ObjectID) (objectid.ObjectID, error) { 16 16 for { 17 17 ty, _, err := store.ReadHeader(id) 18 18 if err != nil {
+1 -1
internal/testgit/repo_open_object_store.go
··· 11 11 // the caller. 12 12 // 13 13 //nolint:ireturn 14 - func (testRepo *TestRepo) OpenObjectStore(tb testing.TB) objectstore.ReadingStore { 14 + func (testRepo *TestRepo) OpenObjectStore(tb testing.TB) objectstore.Reader { 15 15 tb.Helper() 16 16 17 17 root := testRepo.OpenGitRoot(tb)
+2 -2
network/receivepack/hook.go
··· 35 35 // Labels: Life-Call. 36 36 type HookRequest struct { 37 37 Refs refstore.ReadingStore 38 - ExistingObjects objectstore.ReadingStore 39 - QuarantinedObjects objectstore.ReadingStore 38 + ExistingObjects objectstore.Reader 39 + QuarantinedObjects objectstore.Reader 40 40 CommitGraph *commitgraphread.Reader 41 41 Updates []RefUpdate 42 42 PushOptions []string
+1 -1
network/receivepack/options.go
··· 26 26 Refs refstore.ReadWriteStore 27 27 // ExistingObjects is the object store visible to the push before any newly 28 28 // uploaded quarantined objects are promoted. 29 - ExistingObjects objectstore.ReadingStore 29 + ExistingObjects objectstore.Reader 30 30 // CommitGraph is an optional commit-graph snapshot corresponding to 31 31 // ExistingObjects. 32 32 CommitGraph *commitgraphread.Reader
+2 -2
network/receivepack/service/hook.go
··· 31 31 // Labels: Life-Call. 32 32 type HookRequest struct { 33 33 Refs refstore.ReadingStore 34 - ExistingObjects objectstore.ReadingStore 35 - QuarantinedObjects objectstore.ReadingStore 34 + ExistingObjects objectstore.Reader 35 + QuarantinedObjects objectstore.Reader 36 36 CommitGraph *commitgraphread.Reader 37 37 Updates []RefUpdate 38 38 PushOptions []string
+1 -1
network/receivepack/service/options.go
··· 27 27 type Options struct { 28 28 Algorithm objectid.Algorithm 29 29 Refs refstore.ReadWriteStore 30 - ExistingObjects objectstore.ReadingStore 30 + ExistingObjects objectstore.Reader 31 31 CommitGraph *commitgraphread.Reader 32 32 ObjectsRoot *os.Root 33 33 Progress iowrap.WriteFlusher
+1 -1
network/receivepack/service/run_hook.go
··· 40 40 quarantinedObjects := service.opts.ExistingObjects 41 41 42 42 var ( 43 - quarantineObjectsStore objectstore.ReadingStore 43 + quarantineObjectsStore objectstore.Reader 44 44 quarantineLooseStore *loose.Store 45 45 quarantinePackedStore *packed.Store 46 46 quarantineLooseRoot *os.Root
+1 -1
object/blob/blob.go
··· 5 5 // 6 6 // Blob is fully materialized in memory. 7 7 // 8 - // Consider using objectstore.ReadingStore.ReadReaderContent, 8 + // Consider using objectstore.Reader.ReadReaderContent, 9 9 // or appropriate streaming write APIs. 10 10 // 11 11 // Labels: MT-Unsafe.
+2 -2
object/fetch/fetcher.go
··· 6 6 // 7 7 // Labels: MT-Safe. 8 8 type Fetcher struct { 9 - store objectstore.ReadingStore 9 + store objectstore.Reader 10 10 } 11 11 12 12 // New returns a Fetcher that reads objects from store. 13 13 // 14 14 // Labels: Deps-Borrowed, Life-Parent. 15 - func New(store objectstore.ReadingStore) *Fetcher { 15 + func New(store objectstore.Reader) *Fetcher { 16 16 return &Fetcher{store: store} 17 17 }
+1 -1
object/store/chain/chain.go
··· 8 8 // 9 9 // Labels: Close-Caller. 10 10 type Chain struct { 11 - backends []objectstore.ReadingStore 11 + backends []objectstore.Reader 12 12 }
+2 -2
object/store/chain/new.go
··· 7 7 // The provided backends must be non-nil and distinct. 8 8 // 9 9 // Labels: Deps-Borrowed, Life-Parent. 10 - func New(backends ...objectstore.ReadingStore) *Chain { 10 + func New(backends ...objectstore.Reader) *Chain { 11 11 return &Chain{ 12 - backends: append([]objectstore.ReadingStore(nil), backends...), 12 + backends: append([]objectstore.Reader(nil), backends...), 13 13 } 14 14 }
+1 -1
object/store/mix/mix.go
··· 16 16 17 17 backendHead *backendNode 18 18 backendTail *backendNode 19 - backendNodeByStore map[objectstore.ReadingStore]*backendNode 19 + backendNodeByStore map[objectstore.Reader]*backendNode 20 20 }
+4 -4
object/store/mix/mru.go
··· 3 3 import objectstore "codeberg.org/lindenii/furgit/object/store" 4 4 5 5 type backendNode struct { 6 - backend objectstore.ReadingStore 6 + backend objectstore.Reader 7 7 prev *backendNode 8 8 next *backendNode 9 9 } 10 10 11 11 //nolint:ireturn 12 - func (mix *Mix) firstBackend() objectstore.ReadingStore { 12 + func (mix *Mix) firstBackend() objectstore.Reader { 13 13 mix.mu.RLock() 14 14 defer mix.mu.RUnlock() 15 15 ··· 21 21 } 22 22 23 23 //nolint:ireturn 24 - func (mix *Mix) nextBackend(current objectstore.ReadingStore) objectstore.ReadingStore { 24 + func (mix *Mix) nextBackend(current objectstore.Reader) objectstore.Reader { 25 25 mix.mu.RLock() 26 26 defer mix.mu.RUnlock() 27 27 ··· 33 33 return node.next.backend 34 34 } 35 35 36 - func (mix *Mix) touchBackend(backend objectstore.ReadingStore) { 36 + func (mix *Mix) touchBackend(backend objectstore.Reader) { 37 37 if backend == nil { 38 38 return 39 39 }
+2 -2
object/store/mix/new.go
··· 7 7 // The provided backends must be non-nil and distinct. 8 8 // 9 9 // Labels: Deps-Borrowed, Life-Parent. 10 - func New(backends ...objectstore.ReadingStore) *Mix { 11 - nodeByStore := make(map[objectstore.ReadingStore]*backendNode, len(backends)) 10 + func New(backends ...objectstore.Reader) *Mix { 11 + nodeByStore := make(map[objectstore.Reader]*backendNode, len(backends)) 12 12 13 13 var ( 14 14 head *backendNode
+1 -1
object/store/mix/refresh.go
··· 10 10 func (mix *Mix) Refresh() error { 11 11 mix.mu.RLock() 12 12 13 - backends := make([]objectstore.ReadingStore, 0, len(mix.backendNodeByStore)) 13 + backends := make([]objectstore.Reader, 0, len(mix.backendNodeByStore)) 14 14 for node := mix.backendHead; node != nil; node = node.next { 15 15 backends = append(backends, node.backend) 16 16 }
+1 -1
object/store/packed/store.go
··· 50 50 deltaCache *deltaCache 51 51 } 52 52 53 - var _ objectstore.ReadingStore = (*Store)(nil) 53 + var _ objectstore.Reader = (*Store)(nil)
+2 -2
object/store/reading.go object/store/reader.go
··· 7 7 objecttype "codeberg.org/lindenii/furgit/object/type" 8 8 ) 9 9 10 - // ReadingStore reads Git objects by object ID. 10 + // Reader reads Git objects by object ID. 11 11 // 12 12 // Methods may perform implementation-defined integrity verification beyond 13 13 // successfully producing their documented result. 14 14 // 15 15 // Labels: MT-Safe. 16 - type ReadingStore interface { 16 + type Reader interface { 17 17 // ReadBytesFull reads a full serialized object as "type size\0content". 18 18 // 19 19 // In a valid repository, hashing this payload with the same algorithm yields
+2 -2
reachability/reachability.go
··· 9 9 // 10 10 // Labels: MT-Safe. 11 11 type Reachability struct { 12 - store objectstore.ReadingStore 12 + store objectstore.Reader 13 13 graph *commitgraphread.Reader 14 14 } 15 15 ··· 17 17 // commit-graph reader for faster commit-domain traversal. 18 18 // 19 19 // Labels: Deps-Borrowed, Life-Parent. 20 - func New(store objectstore.ReadingStore, graph *commitgraphread.Reader) *Reachability { 20 + func New(store objectstore.Reader, graph *commitgraphread.Reader) *Reachability { 21 21 return &Reachability{store: store, graph: graph} 22 22 }
+3 -3
repository/objects.go
··· 26 26 root *os.Root, 27 27 algo objectid.Algorithm, 28 28 ) ( 29 - objects objectstore.ReadingStore, 29 + objects objectstore.Reader, 30 30 objectsRoot *os.Root, 31 31 objectsPackRoot *os.Root, 32 32 objectsLoose *objectloose.Store, ··· 45 45 return nil, nil, nil, nil, nil, err 46 46 } 47 47 48 - backends := []objectstore.ReadingStore{objectsLoose} 48 + backends := []objectstore.Reader{objectsLoose} 49 49 50 50 objectsPackRoot, err = objectsRoot.OpenRoot("pack") 51 51 if err == nil { ··· 84 84 // Labels: Life-Parent. 85 85 // 86 86 //nolint:ireturn 87 - func (repo *Repository) Objects() objectstore.ReadingStore { 87 + func (repo *Repository) Objects() objectstore.Reader { 88 88 return repo.objects 89 89 }
+1 -1
repository/repository.go
··· 32 32 config *config.Config 33 33 algo objectid.Algorithm 34 34 35 - objects objectstore.ReadingStore 35 + objects objectstore.Reader 36 36 fetcher *fetch.Fetcher 37 37 objectsRoot *os.Root 38 38 objectsPackRoot *os.Root