Documentation
¶
Overview ¶
Package repository wires object and ref storage for one Git repository.
Index ¶
- type Repository
- func (repo *Repository) Algorithm() objectid.Algorithm
- func (repo *Repository) Close() error
- func (repo *Repository) Config() *config.Config
- func (repo *Repository) ListRefs(pattern string) ([]ref.Ref, error)
- func (repo *Repository) Objects() objectstore.Store
- func (repo *Repository) ReadStored(id objectid.ObjectID) (objectstored.StoredObject, error)
- func (repo *Repository) ReadStoredBlob(id objectid.ObjectID) (*objectstored.StoredBlob, error)
- func (repo *Repository) ReadStoredBytesContent(id objectid.ObjectID) (objecttype.Type, []byte, error)
- func (repo *Repository) ReadStoredBytesFull(id objectid.ObjectID) ([]byte, error)
- func (repo *Repository) ReadStoredCommit(id objectid.ObjectID) (*objectstored.StoredCommit, error)
- func (repo *Repository) ReadStoredHeader(id objectid.ObjectID) (objecttype.Type, int64, error)
- func (repo *Repository) ReadStoredReaderContent(id objectid.ObjectID) (objecttype.Type, int64, io.ReadCloser, error)
- func (repo *Repository) ReadStoredReaderFull(id objectid.ObjectID) (io.ReadCloser, error)
- func (repo *Repository) ReadStoredSize(id objectid.ObjectID) (int64, error)
- func (repo *Repository) ReadStoredTag(id objectid.ObjectID) (*objectstored.StoredTag, error)
- func (repo *Repository) ReadStoredTree(id objectid.ObjectID) (*objectstored.StoredTree, error)
- func (repo *Repository) Refs() refstore.Store
- func (repo *Repository) ResolveRef(name string) (ref.Ref, error)
- func (repo *Repository) ResolveRefFully(name string) (ref.Detached, error)
- func (repo *Repository) ResolveTreeEntry(tree *objectstored.StoredTree, parts [][]byte) (object.TreeEntry, error)
- func (repo *Repository) ShortenRef(name string) (string, error)
- func (repo *Repository) WriteLooseBytesContent(ty objecttype.Type, content []byte) (objectid.ObjectID, error)
- func (repo *Repository) WriteLooseBytesFull(raw []byte) (objectid.ObjectID, error)
- func (repo *Repository) WriteLooseReaderContent(ty objecttype.Type, size int64, src io.Reader) (objectid.ObjectID, error)
- func (repo *Repository) WriteLooseReaderFull(src io.Reader) (objectid.ObjectID, error)
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
WriteLooseReaderFull writes one loose object from raw bytes "type size\0content" read from src.