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 ¶
- type ConfigStorage
- type IndexStorage
- type ObjectStorage
- func (o *ObjectStorage) Commit() error
- func (o *ObjectStorage) EncodedObject(t plumbing.ObjectType, h plumbing.Hash) (plumbing.EncodedObject, error)
- func (o *ObjectStorage) EncodedObjectSize(h plumbing.Hash) (int64, error)
- func (o *ObjectStorage) HasEncodedObject(h plumbing.Hash) error
- func (o *ObjectStorage) IterEncodedObjects(t plumbing.ObjectType) (storer.EncodedObjectIter, error)
- func (o *ObjectStorage) SetEncodedObject(obj plumbing.EncodedObject) (plumbing.Hash, error)
- type ReferenceStorage
- func (r *ReferenceStorage) CheckAndSetReference(ref, old *plumbing.Reference) error
- func (r ReferenceStorage) Commit() error
- func (r ReferenceStorage) CountLooseRefs() (int, error)
- func (r ReferenceStorage) IterReferences() (storer.ReferenceIter, error)
- func (r ReferenceStorage) PackRefs() error
- func (r ReferenceStorage) Reference(n plumbing.ReferenceName) (*plumbing.Reference, error)
- func (r ReferenceStorage) RemoveReference(n plumbing.ReferenceName) error
- func (r *ReferenceStorage) SetReference(ref *plumbing.Reference) error
- type ShallowStorage
- type Storage
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.
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.
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 ¶
func (o *ObjectStorage) EncodedObject(t plumbing.ObjectType, h plumbing.Hash) (plumbing.EncodedObject, error)
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 ¶
func (r ReferenceStorage) Reference(n plumbing.ReferenceName) (*plumbing.Reference, error)
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.
type Storage ¶
type Storage struct { *ObjectStorage *ReferenceStorage *IndexStorage *ShallowStorage *ConfigStorage // contains filtered or unexported fields }
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 ¶
NewStorage returns a new Storage based on two repositories, base is the base repository where the read operations are read and temportal is were all the write operations are stored.