filesystem

package
v4.7.0+incompatible Latest Latest
Warning

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

Go to latest
Published: Sep 6, 2018 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Overview

Package filesystem is a storage backend base on filesystems

Index

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,
) (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.

Types

type ConfigStorage

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

func (*ConfigStorage) Config

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

func (*ConfigStorage) SetConfig

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

type IndexStorage

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

func (*IndexStorage) Index

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

func (*IndexStorage) SetIndex

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

type ModuleStorage

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

func (*ModuleStorage) Module

func (s *ModuleStorage) Module(name string) (storage.Storer, error)

type ObjectStorage

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

func NewObjectStorage

func NewObjectStorage(dir *dotgit.DotGit) (ObjectStorage, error)

NewObjectStorage creates a new ObjectStorage with the given .git directory.

func NewObjectStorageWithOptions

func NewObjectStorageWithOptions(
	dir *dotgit.DotGit,
	ops Options,
) (ObjectStorage, error)

NewObjectStorageWithOptions creates a new ObjectStorage with the given .git directory and sets its options.

func (*ObjectStorage) Close

func (s *ObjectStorage) Close() error

Close closes all opened files.

func (*ObjectStorage) DeleteLooseObject

func (s *ObjectStorage) DeleteLooseObject(hash plumbing.Hash) error

func (*ObjectStorage) DeleteOldObjectPackAndIndex

func (s *ObjectStorage) DeleteOldObjectPackAndIndex(h plumbing.Hash, t time.Time) error

func (*ObjectStorage) DeltaObject

DeltaObject returns the object with the given hash, by searching for it in the packfile and the git object directories.

func (*ObjectStorage) EncodedObject

EncodedObject returns the object with the given hash, by searching for it in the packfile and the git object directories.

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) 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 (s *ObjectStorage) LooseObjectTime(hash plumbing.Hash) (time.Time, error)

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) 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
}

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 (*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.

func (*ShallowStorage) Shallow

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

Shallow return the shallow commits reading from shallo file from .git

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

func NewStorage(fs billy.Filesystem) (*Storage, error)

NewStorage returns a new Storage backed by a given `fs.Filesystem`

func NewStorageWithOptions

func NewStorageWithOptions(
	fs billy.Filesystem,
	ops Options,
) (*Storage, error)

NewStorageWithOptions returns a new Storage backed by a given `fs.Filesystem`

func (*Storage) Filesystem

func (s *Storage) Filesystem() billy.Filesystem

Filesystem returns the underlying filesystem

func (*Storage) Init

func (s *Storage) Init() error

Directories

Path Synopsis
https://github.com/git/git/blob/master/Documentation/gitrepository-layout.txt
https://github.com/git/git/blob/master/Documentation/gitrepository-layout.txt

Jump to

Keyboard shortcuts

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