Documentation ¶
Overview ¶
Package filesystem is a storage backend base on filesystems
Index ¶
- func NewPackfileIter(fs billy.Filesystem, f billy.File, idxFile billy.File, t plumbing.ObjectType, ...) (storer.EncodedObjectIter, error)
- type ConfigStorage
- type IndexStorage
- type ModuleStorage
- type ObjectStorage
- func (s *ObjectStorage) Close() error
- func (s *ObjectStorage) DeleteLooseObject(hash plumbing.Hash) error
- func (s *ObjectStorage) DeleteOldObjectPackAndIndex(h plumbing.Hash, t time.Time) error
- func (s *ObjectStorage) DeltaObject(t plumbing.ObjectType, h plumbing.Hash) (plumbing.EncodedObject, error)
- func (s *ObjectStorage) EncodedObject(t plumbing.ObjectType, h plumbing.Hash) (plumbing.EncodedObject, error)
- func (s *ObjectStorage) EncodedObjectSize(h plumbing.Hash) (size int64, err error)
- func (s *ObjectStorage) ForEachObjectHash(fun func(plumbing.Hash) error) error
- func (s *ObjectStorage) HasEncodedObject(h plumbing.Hash) (err error)
- func (s *ObjectStorage) HashesWithPrefix(prefix []byte) ([]plumbing.Hash, error)
- func (s *ObjectStorage) IterEncodedObjects(t plumbing.ObjectType) (storer.EncodedObjectIter, error)
- func (s *ObjectStorage) LooseObjectTime(hash plumbing.Hash) (time.Time, error)
- func (s *ObjectStorage) NewEncodedObject() plumbing.EncodedObject
- func (s *ObjectStorage) ObjectPacks() ([]plumbing.Hash, error)
- func (s *ObjectStorage) PackfileWriter() (io.WriteCloser, error)
- func (s *ObjectStorage) Reindex()
- func (s *ObjectStorage) SetEncodedObject(o plumbing.EncodedObject) (h plumbing.Hash, err error)
- type Options
- type ReferenceStorage
- func (r *ReferenceStorage) CheckAndSetReference(ref, old *plumbing.Reference) 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 ¶
func NewPackfileIter ¶
func NewPackfileIter( fs billy.Filesystem, f billy.File, idxFile billy.File, t plumbing.ObjectType, keepPack bool, ) (storer.EncodedObjectIter, error)
NewPackfileIter returns a new EncodedObjectIter for the provided packfile and object type. Packfile and index file will be closed after they're used. If keepPack is true the packfile won't be closed after the iteration finished.
Types ¶
type ConfigStorage ¶
type ConfigStorage struct {
// contains filtered or unexported fields
}
type IndexStorage ¶
type IndexStorage struct {
// contains filtered or unexported fields
}
type ModuleStorage ¶
type ModuleStorage struct {
// contains filtered or unexported fields
}
type ObjectStorage ¶
type ObjectStorage struct {
// contains filtered or unexported fields
}
func NewObjectStorage ¶
func NewObjectStorage(dir *dotgit.DotGit, objectCache cache.Object) *ObjectStorage
NewObjectStorage creates a new ObjectStorage with the given .git directory and cache.
func NewObjectStorageWithOptions ¶
func NewObjectStorageWithOptions(dir *dotgit.DotGit, objectCache cache.Object, ops Options) *ObjectStorage
NewObjectStorageWithOptions creates a new ObjectStorage with the given .git directory, cache and extra options
func (*ObjectStorage) DeleteLooseObject ¶
func (s *ObjectStorage) DeleteLooseObject(hash plumbing.Hash) error
func (*ObjectStorage) DeleteOldObjectPackAndIndex ¶
func (*ObjectStorage) DeltaObject ¶
func (s *ObjectStorage) DeltaObject(t plumbing.ObjectType, h plumbing.Hash) (plumbing.EncodedObject, error)
DeltaObject returns the object with the given hash, by searching for it in the packfile and the git object directories.
func (*ObjectStorage) EncodedObject ¶
func (s *ObjectStorage) EncodedObject(t plumbing.ObjectType, h plumbing.Hash) (plumbing.EncodedObject, error)
EncodedObject returns the object with the given hash, by searching for it in the packfile and the git object directories.
func (*ObjectStorage) EncodedObjectSize ¶
func (s *ObjectStorage) EncodedObjectSize(h plumbing.Hash) ( size int64, err error)
EncodedObjectSize returns the plaintext size of the given object, without actually reading the full object data from storage.
func (*ObjectStorage) ForEachObjectHash ¶
func (s *ObjectStorage) ForEachObjectHash(fun func(plumbing.Hash) error) error
func (*ObjectStorage) HasEncodedObject ¶
func (s *ObjectStorage) HasEncodedObject(h plumbing.Hash) (err error)
HasEncodedObject returns nil if the object exists, without actually reading the object data from storage.
func (*ObjectStorage) HashesWithPrefix ¶
func (s *ObjectStorage) HashesWithPrefix(prefix []byte) ([]plumbing.Hash, error)
func (*ObjectStorage) IterEncodedObjects ¶
func (s *ObjectStorage) IterEncodedObjects(t plumbing.ObjectType) (storer.EncodedObjectIter, error)
IterEncodedObjects returns an iterator for all the objects in the packfile with the given type.
func (*ObjectStorage) LooseObjectTime ¶
func (*ObjectStorage) NewEncodedObject ¶
func (s *ObjectStorage) NewEncodedObject() plumbing.EncodedObject
func (*ObjectStorage) ObjectPacks ¶
func (s *ObjectStorage) ObjectPacks() ([]plumbing.Hash, error)
func (*ObjectStorage) PackfileWriter ¶
func (s *ObjectStorage) PackfileWriter() (io.WriteCloser, error)
func (*ObjectStorage) Reindex ¶
func (s *ObjectStorage) Reindex()
Reindex indexes again all packfiles. Useful if git changed packfiles externally
func (*ObjectStorage) SetEncodedObject ¶
func (s *ObjectStorage) SetEncodedObject(o plumbing.EncodedObject) (h plumbing.Hash, err error)
SetEncodedObject adds a new object to the storage.
type Options ¶
type Options struct { // ExclusiveAccess means that the filesystem is not modified externally // while the repo is open. ExclusiveAccess bool // KeepDescriptors makes the file descriptors to be reused but they will // need to be manually closed calling Close(). KeepDescriptors bool // MaxOpenDescriptors is the max number of file descriptors to keep // open. If KeepDescriptors is true, all file descriptors will remain open. MaxOpenDescriptors int }
Options holds configuration for the storage.
type ReferenceStorage ¶
type ReferenceStorage struct {
// contains filtered or unexported fields
}
func (*ReferenceStorage) CheckAndSetReference ¶
func (r *ReferenceStorage) CheckAndSetReference(ref, old *plumbing.Reference) error
func (*ReferenceStorage) CountLooseRefs ¶
func (r *ReferenceStorage) CountLooseRefs() (int, error)
func (*ReferenceStorage) IterReferences ¶
func (r *ReferenceStorage) IterReferences() (storer.ReferenceIter, error)
func (*ReferenceStorage) PackRefs ¶
func (r *ReferenceStorage) PackRefs() error
func (*ReferenceStorage) Reference ¶
func (r *ReferenceStorage) Reference(n plumbing.ReferenceName) (*plumbing.Reference, error)
func (*ReferenceStorage) RemoveReference ¶
func (r *ReferenceStorage) RemoveReference(n plumbing.ReferenceName) error
func (*ReferenceStorage) SetReference ¶
func (r *ReferenceStorage) SetReference(ref *plumbing.Reference) error
type ShallowStorage ¶
type ShallowStorage struct {
// contains filtered or unexported fields
}
ShallowStorage where the shallow commits are stored, an internal to manipulate the shallow file
func (*ShallowStorage) SetShallow ¶
func (s *ShallowStorage) SetShallow(commits []plumbing.Hash) error
SetShallow save the shallows in the shallow file in the .git folder as one commit per line represented by 40-byte hexadecimal object terminated by a newline.
type Storage ¶
type Storage struct { ObjectStorage ReferenceStorage IndexStorage ShallowStorage ConfigStorage ModuleStorage // contains filtered or unexported fields }
Storage is an implementation of git.Storer that stores data on disk in the standard git format (this is, the .git directory). Zero values of this type are not safe to use, see the NewStorage function below.
func NewStorage ¶
NewStorage returns a new Storage backed by a given `fs.Filesystem` and cache.
func NewStorageWithOptions ¶
NewStorageWithOptions returns a new Storage with extra options, backed by a given `fs.Filesystem` and cache.
func (*Storage) Filesystem ¶
func (s *Storage) Filesystem() billy.Filesystem
Filesystem returns the underlying filesystem