repository

package
v0.1.39 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 1, 2026 License: AGPL-3.0 Imports: 20 Imported by: 0

Documentation

Overview

Package repository wires object and ref storage for one Git repository.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Repository

type Repository struct {
	// contains filtered or unexported fields
}

Repository is a thin composition root for repository-local stores.

Open expects a root for the Git directory itself: a bare repository root or a non-bare ".git" directory.

func Open

func Open(root *os.Root) (repo *Repository, err error)

Open opens a repository and wires object/ref stores from its on-disk format.

Open borrows root during construction and does not close it.

func (*Repository) Algorithm

func (repo *Repository) Algorithm() objectid.Algorithm

Algorithm returns the repository object ID algorithm.

func (*Repository) Close

func (repo *Repository) Close() error

Close closes owned stores and filesystem roots. The behavior of the repo after Close is undefined.

func (*Repository) Config

func (repo *Repository) Config() *config.Config

Config returns the parsed repository configuration snapshot.

The returned pointer is owned by Repository. Callers should treat it as read-only.

func (*Repository) ListRefs added in v0.1.20

func (repo *Repository) ListRefs(pattern string) ([]ref.Ref, error)

ListRefs lists references matching pattern.

func (*Repository) Objects

func (repo *Repository) Objects() objectstore.Store

Objects returns the configured object store.

func (*Repository) ReadStored

func (repo *Repository) ReadStored(id objectid.ObjectID) (objectstored.StoredObject, error)

ReadStored reads, parses, and wraps one object by ID.

func (*Repository) ReadStoredBlob

func (repo *Repository) ReadStoredBlob(id objectid.ObjectID) (*objectstored.StoredBlob, error)

ReadStoredBlob reads and parses a blob object by ID.

func (*Repository) ReadStoredBytesContent added in v0.1.20

func (repo *Repository) ReadStoredBytesContent(id objectid.ObjectID) (objecttype.Type, []byte, error)

ReadStoredBytesContent reads an object's type and content bytes.

func (*Repository) ReadStoredBytesFull added in v0.1.20

func (repo *Repository) ReadStoredBytesFull(id objectid.ObjectID) ([]byte, error)

ReadStoredBytesFull reads a full serialized object as "type size\0content".

func (*Repository) ReadStoredCommit

func (repo *Repository) ReadStoredCommit(id objectid.ObjectID) (*objectstored.StoredCommit, error)

ReadStoredCommit reads and parses a commit object by ID.

func (*Repository) ReadStoredHeader added in v0.1.20

func (repo *Repository) ReadStoredHeader(id objectid.ObjectID) (objecttype.Type, int64, error)

ReadStoredHeader reads an object's type and declared content length.

func (*Repository) ReadStoredReaderContent added in v0.1.20

func (repo *Repository) ReadStoredReaderContent(id objectid.ObjectID) (objecttype.Type, int64, io.ReadCloser, error)

ReadStoredReaderContent reads an object's type, declared content length, and content stream.

Caller must close the returned reader.

func (*Repository) ReadStoredReaderFull added in v0.1.20

func (repo *Repository) ReadStoredReaderFull(id objectid.ObjectID) (io.ReadCloser, error)

ReadStoredReaderFull reads a full serialized object stream.

Caller must close the returned reader.

func (*Repository) ReadStoredSize added in v0.1.28

func (repo *Repository) ReadStoredSize(id objectid.ObjectID) (int64, error)

ReadStoredSize reads an object's declared content length.

func (*Repository) ReadStoredTag

func (repo *Repository) ReadStoredTag(id objectid.ObjectID) (*objectstored.StoredTag, error)

ReadStoredTag reads and parses a tag object by ID.

func (*Repository) ReadStoredTree

func (repo *Repository) ReadStoredTree(id objectid.ObjectID) (*objectstored.StoredTree, error)

ReadStoredTree reads and parses a tree object by ID.

func (*Repository) Refs

func (repo *Repository) Refs() refstore.Store

Refs returns the configured ref store.

func (*Repository) ResolveRef added in v0.1.20

func (repo *Repository) ResolveRef(name string) (ref.Ref, error)

ResolveRef resolves one reference name to symbolic or detached form.

func (*Repository) ResolveRefFully added in v0.1.20

func (repo *Repository) ResolveRefFully(name string) (ref.Detached, error)

ResolveRefFully resolves one reference name to detached form.

func (*Repository) ResolveTreeEntry

func (repo *Repository) ResolveTreeEntry(tree *objectstored.StoredTree, parts [][]byte) (object.TreeEntry, error)

ResolveTreeEntry resolves one path within a stored root tree.

parts must contain at least one path segment. Intermediate segments must be tree entries.

func (*Repository) ShortenRef added in v0.1.20

func (repo *Repository) ShortenRef(name string) (string, error)

ShortenRef returns the shortest unambiguous shorthand for a full reference name.

func (*Repository) WriteLooseBytesContent added in v0.1.20

func (repo *Repository) WriteLooseBytesContent(ty objecttype.Type, content []byte) (objectid.ObjectID, error)

WriteLooseBytesContent writes one loose object from typed content bytes.

func (*Repository) WriteLooseBytesFull added in v0.1.20

func (repo *Repository) WriteLooseBytesFull(raw []byte) (objectid.ObjectID, error)

WriteLooseBytesFull writes one loose object from raw "type size\0content".

func (*Repository) WriteLooseReaderContent added in v0.1.22

func (repo *Repository) WriteLooseReaderContent(ty objecttype.Type, size int64, src io.Reader) (objectid.ObjectID, error)

WriteLooseReaderContent writes one loose object from typed content bytes read from src. src must provide exactly size bytes.

func (*Repository) WriteLooseReaderFull added in v0.1.22

func (repo *Repository) WriteLooseReaderFull(src io.Reader) (objectid.ObjectID, error)

WriteLooseReaderFull writes one loose object from raw bytes "type size\0content" read from src.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL