git

package
v1.3.0 Latest Latest
Warning

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

Go to latest
Published: Aug 29, 2018 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AllReferencesFilter

func AllReferencesFilter(_ Reference) bool

Types

type BatchObjectIter

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

func (*BatchObjectIter) Close

func (l *BatchObjectIter) Close() error

func (*BatchObjectIter) Next

func (iter *BatchObjectIter) Next() (OID, ObjectType, counts.Count32, []byte, error)

type Commit

type Commit struct {
	Size    counts.Count32
	Parents []OID
	Tree    OID
}

func ParseCommit

func ParseCommit(oid OID, data []byte) (*Commit, error)

type OID

type OID struct {
	// contains filtered or unexported fields
}
var NullOID OID

func NewOID

func NewOID(s string) (OID, error)

func OIDFromBytes

func OIDFromBytes(oidBytes []byte) (OID, error)

func (OID) Bytes

func (oid OID) Bytes() []byte

func (OID) MarshalJSON

func (oid OID) MarshalJSON() ([]byte, error)

func (OID) String

func (oid OID) String() string

type ObjectHeaderIter

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

func NewObjectHeaderIter

func NewObjectHeaderIter(name string, data []byte) (ObjectHeaderIter, error)

Iterate over a commit or tag object header. `data` should be the object's contents, which is usually terminated by a blank line that separates the header from the comment. However, annotated tags don't always include comments, and Git even tolerates commits without comments, so don't insist on a blank line. `name` is used in error messages.

func (*ObjectHeaderIter) HasNext

func (iter *ObjectHeaderIter) HasNext() bool

func (*ObjectHeaderIter) Next

func (iter *ObjectHeaderIter) Next() (string, string, error)

type ObjectIter

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

func (*ObjectIter) Close

func (l *ObjectIter) Close() error

func (*ObjectIter) Next

func (l *ObjectIter) Next() (OID, ObjectType, counts.Count32, error)

Next returns the next object, or EOF when done.

type ObjectType

type ObjectType string

The type of an object ("blob", "tree", "commit", "tag", "missing").

type Reference

type Reference struct {
	Refname    string
	ObjectType ObjectType
	ObjectSize counts.Count32
	OID        OID
}

type ReferenceFilter

type ReferenceFilter func(Reference) bool
var (
	BranchesFilter ReferenceFilter = PrefixFilter("refs/heads/")
	TagsFilter     ReferenceFilter = PrefixFilter("refs/tags/")
	RemotesFilter  ReferenceFilter = PrefixFilter("refs/remotes/")
)

func AndFilter

func AndFilter(filters ...ReferenceFilter) ReferenceFilter

func NotFilter

func NotFilter(filter ReferenceFilter) ReferenceFilter

func OrFilter

func OrFilter(filters ...ReferenceFilter) ReferenceFilter

func PrefixFilter

func PrefixFilter(prefix string) ReferenceFilter

type ReferenceIter

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

func (*ReferenceIter) Close

func (l *ReferenceIter) Close() error

func (*ReferenceIter) Next

func (iter *ReferenceIter) Next() (Reference, bool, error)

type Repository

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

func NewRepository

func NewRepository(path string) (*Repository, error)

func (*Repository) Close

func (repo *Repository) Close() error

func (*Repository) CreateObject

func (repo *Repository) CreateObject(t ObjectType, writer func(io.Writer) error) (OID, error)

CreateObject creates a new Git object, of the specified type, in `Repository`. `writer` is a function that writes the object in `git hash-object` input format. This is used for testing only.

func (*Repository) NewBatchObjectIter

func (repo *Repository) NewBatchObjectIter() (*BatchObjectIter, io.WriteCloser, error)

NewBatchObjectIter returns iterates over objects whose names are fed into its stdin. The output is buffered, so it has to be closed before you can be sure to read all of the objects.

func (*Repository) NewObjectIter

func (repo *Repository) NewObjectIter(args ...string) (
	*ObjectIter, io.WriteCloser, error,
)

NewObjectIter returns an iterator that iterates over objects in `repo`. The second return value is the stdin of the `rev-list` command. The caller can feed values into it but must close it in any case.

func (*Repository) NewReferenceIter

func (repo *Repository) NewReferenceIter() (*ReferenceIter, error)

NewReferenceIter returns an iterator that iterates over all of the references in `repo`.

func (*Repository) Path

func (repo *Repository) Path() string

func (*Repository) UpdateRef

func (repo *Repository) UpdateRef(refname string, oid OID) error

type Tag

type Tag struct {
	Size         counts.Count32
	Referent     OID
	ReferentType ObjectType
}

func ParseTag

func ParseTag(oid OID, data []byte) (*Tag, error)

type Tree

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

func ParseTree

func ParseTree(oid OID, data []byte) (*Tree, error)

func (*Tree) Iter

func (tree *Tree) Iter() *TreeIter

func (Tree) Size

func (tree Tree) Size() counts.Count32

type TreeEntry

type TreeEntry struct {
	Name     string
	OID      OID
	Filemode uint
}

Note that Name shares memory with the tree data that were originally read; i.e., retaining a pointer to Name keeps the tree data reachable.

type TreeIter

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

func (*TreeIter) NextEntry

func (iter *TreeIter) NextEntry() (TreeEntry, bool, error)

Jump to

Keyboard shortcuts

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