transactional

package
v1.0.1 Latest Latest
Warning

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

Go to latest
Published: Jul 5, 2023 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Overview

Package transactional is a transactional implementation of git.Storer, it demux the write and read operation of two separate storers, allowing to merge content calling Storage.Commit.

The API and functionality of this package are considered EXPERIMENTAL and is not considered stable nor production ready.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ConfigStorage

type ConfigStorage struct {
	config.ConfigStorer
	// contains filtered or unexported fields
}

ConfigStorage implements the storer.ConfigStorage for the transactional package.

func NewConfigStorage

func NewConfigStorage(s, temporal config.ConfigStorer) *ConfigStorage

NewConfigStorage returns a new ConfigStorer based on a base storer and a temporal storer.

func (*ConfigStorage) Commit

func (c *ConfigStorage) Commit() error

Commit it copies the config from the temporal storage into the base storage.

func (*ConfigStorage) Config

func (c *ConfigStorage) Config() (*config.Config, error)

Config honors the storer.ConfigStorer interface.

func (*ConfigStorage) SetConfig

func (c *ConfigStorage) SetConfig(cfg *config.Config) error

SetConfig honors the storer.ConfigStorer interface.

type IndexStorage

type IndexStorage struct {
	storer.IndexStorer
	// contains filtered or unexported fields
}

IndexStorage implements the storer.IndexStorage for the transactional package.

func NewIndexStorage

func NewIndexStorage(s, temporal storer.IndexStorer) *IndexStorage

NewIndexStorage returns a new IndexStorer based on a base storer and a temporal storer.

func (*IndexStorage) Commit

func (s *IndexStorage) Commit() error

Commit it copies the index from the temporal storage into the base storage.

func (*IndexStorage) Index

func (s *IndexStorage) Index() (*index.Index, error)

Index honors the storer.IndexStorer interface.

func (*IndexStorage) SetIndex

func (s *IndexStorage) SetIndex(idx *index.Index) (err error)

SetIndex honors the storer.IndexStorer interface.

type ObjectStorage

type ObjectStorage struct {
	storer.EncodedObjectStorer
	// contains filtered or unexported fields
}

ObjectStorage implements the storer.EncodedObjectStorer for the transactional package.

func NewObjectStorage

func NewObjectStorage(base, temporal storer.EncodedObjectStorer) *ObjectStorage

NewObjectStorage returns a new EncodedObjectStorer based on a base storer and a temporal storer.

func (*ObjectStorage) Commit

func (o *ObjectStorage) Commit() error

Commit it copies the objects of the temporal storage into the base storage.

func (*ObjectStorage) EncodedObject

EncodedObject honors the storer.EncodedObjectStorer interface.

func (*ObjectStorage) EncodedObjectSize

func (o *ObjectStorage) EncodedObjectSize(h plumbing.Hash) (int64, error)

EncodedObjectSize honors the storer.EncodedObjectStorer interface.

func (*ObjectStorage) HasEncodedObject

func (o *ObjectStorage) HasEncodedObject(h plumbing.Hash) error

HasEncodedObject honors the storer.EncodedObjectStorer interface.

func (*ObjectStorage) IterEncodedObjects

func (o *ObjectStorage) IterEncodedObjects(t plumbing.ObjectType) (storer.EncodedObjectIter, error)

IterEncodedObjects honors the storer.EncodedObjectStorer interface.

func (*ObjectStorage) SetEncodedObject

func (o *ObjectStorage) SetEncodedObject(obj plumbing.EncodedObject) (plumbing.Hash, error)

SetEncodedObject honors the storer.EncodedObjectStorer interface.

type ReferenceStorage

type ReferenceStorage struct {
	storer.ReferenceStorer
	// contains filtered or unexported fields
}

ReferenceStorage implements the storer.ReferenceStorage for the transactional package.

func NewReferenceStorage

func NewReferenceStorage(base, temporal storer.ReferenceStorer) *ReferenceStorage

NewReferenceStorage returns a new ReferenceStorer based on a base storer and a temporal storer.

func (*ReferenceStorage) CheckAndSetReference

func (r *ReferenceStorage) CheckAndSetReference(ref, old *plumbing.Reference) error

SetReference honors the storer.ReferenceStorer interface.

func (ReferenceStorage) Commit

func (r ReferenceStorage) Commit() error

Commit it copies the reference information of the temporal storage into the base storage.

func (ReferenceStorage) CountLooseRefs

func (r ReferenceStorage) CountLooseRefs() (int, error)

CountLooseRefs honors the storer.ReferenceStorer interface.

func (ReferenceStorage) IterReferences

func (r ReferenceStorage) IterReferences() (storer.ReferenceIter, error)

IterReferences honors the storer.ReferenceStorer interface.

func (ReferenceStorage) PackRefs

func (r ReferenceStorage) PackRefs() error

PackRefs honors the storer.ReferenceStorer interface.

func (ReferenceStorage) Reference

Reference honors the storer.ReferenceStorer interface.

func (ReferenceStorage) RemoveReference

func (r ReferenceStorage) RemoveReference(n plumbing.ReferenceName) error

RemoveReference honors the storer.ReferenceStorer interface.

func (*ReferenceStorage) SetReference

func (r *ReferenceStorage) SetReference(ref *plumbing.Reference) error

SetReference honors the storer.ReferenceStorer interface.

type ShallowStorage

type ShallowStorage struct {
	storer.ShallowStorer
	// contains filtered or unexported fields
}

ShallowStorage implements the storer.ShallowStorer for the transactional package.

func NewShallowStorage

func NewShallowStorage(base, temporal storer.ShallowStorer) *ShallowStorage

NewShallowStorage returns a new ShallowStorage based on a base storer and a temporal storer.

func (*ShallowStorage) Commit

func (s *ShallowStorage) Commit() error

Commit it copies the shallow information of the temporal storage into the base storage.

func (*ShallowStorage) SetShallow

func (s *ShallowStorage) SetShallow(commits []plumbing.Hash) error

SetShallow honors the storer.ShallowStorer interface.

func (*ShallowStorage) Shallow

func (s *ShallowStorage) Shallow() ([]plumbing.Hash, error)

Shallow honors the storer.ShallowStorer interface.

type Storage

type Storage interface {
	storage.Storer
	Commit() error
}

Storage is a transactional implementation of git.Storer, it demux the write and read operation of two separate storers, allowing to merge content calling Storage.Commit.

The API and functionality of this package are considered EXPERIMENTAL and is not considered stable nor production ready.

func NewStorage

func NewStorage(base, temporal storage.Storer) Storage

NewStorage returns a new Storage based on two repositories, base is the base repository where the read operations are read and temporal is were all the write operations are stored.

Jump to

Keyboard shortcuts

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