Documentation
¶
Overview ¶
Package object parses and serializes objects such as blob, tree, commit, and tag.
Index ¶
- func TreeEntryNameCompare(entryName []byte, entryMode FileMode, searchName []byte, searchIsTree bool) int
- type Blob
- type Commit
- type ExtraHeader
- type FileMode
- type Object
- type Signature
- type Tag
- type Tree
- func (tree *Tree) Entry(name []byte) *TreeEntry
- func (tree *Tree) InsertEntry(newEntry TreeEntry) error
- func (tree *Tree) ObjectType() objecttype.Type
- func (tree *Tree) RemoveEntry(name []byte) error
- func (tree *Tree) SerializeWithHeader() ([]byte, error)
- func (tree *Tree) SerializeWithoutHeader() ([]byte, error)
- type TreeEntry
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Blob ¶
type Blob struct {
Data []byte
}
Blob represents a Git blob object.
func (*Blob) ObjectType ¶
func (blob *Blob) ObjectType() objecttype.Type
ObjectType returns TypeBlob.
func (*Blob) SerializeWithHeader ¶
SerializeWithHeader renders the raw object (header + body).
func (*Blob) SerializeWithoutHeader ¶
SerializeWithoutHeader renders the raw blob body bytes.
type Commit ¶
type Commit struct {
Tree objectid.ObjectID
Parents []objectid.ObjectID
Author Signature
Committer Signature
Message []byte
ChangeID string
ExtraHeaders []ExtraHeader
}
Commit represents a Git commit object.
func ParseCommit ¶
ParseCommit decodes a commit object body.
func (*Commit) ObjectType ¶
func (commit *Commit) ObjectType() objecttype.Type
ObjectType returns TypeCommit.
func (*Commit) SerializeWithHeader ¶
SerializeWithHeader renders the raw object (header + body).
func (*Commit) SerializeWithoutHeader ¶
SerializeWithoutHeader renders the raw commit body bytes.
type ExtraHeader ¶
ExtraHeader represents an extra header in a Git object.
type Object ¶
type Object interface {
ObjectType() objecttype.Type
SerializeWithoutHeader() ([]byte, error)
SerializeWithHeader() ([]byte, error)
}
Object is a Git object that can serialize itself.
func ParseObjectWithHeader ¶
ParseObjectWithHeader parses a loose object in "type size\\x00body" format.
func ParseObjectWithoutHeader ¶
func ParseObjectWithoutHeader(ty objecttype.Type, body []byte, algo objectid.Algorithm) (Object, error)
ParseObjectWithoutHeader parses a typed object body.
type Signature ¶ added in v0.1.38
Signature represents a Git signature (author/committer/tagger).
func ParseSignature ¶ added in v0.1.38
ParseSignature parses a canonical Git signature line: "Name <email> 123456789 +0000".
type Tag ¶
type Tag struct {
Target objectid.ObjectID
TargetType objecttype.Type
Name []byte
Tagger *Signature
Message []byte
}
Tag represents a Git annotated tag object.
func (*Tag) SerializeWithHeader ¶
SerializeWithHeader renders the raw object (header + body).
func (*Tag) SerializeWithoutHeader ¶
SerializeWithoutHeader renders the raw tag body bytes.
type Tree ¶
type Tree struct {
Entries []TreeEntry
}
Tree represents a Git tree object.
func (*Tree) InsertEntry ¶
InsertEntry inserts a tree entry while preserving Git ordering.
func (*Tree) ObjectType ¶
func (tree *Tree) ObjectType() objecttype.Type
ObjectType returns TypeTree.
func (*Tree) RemoveEntry ¶
RemoveEntry removes a tree entry by name.
func (*Tree) SerializeWithHeader ¶
SerializeWithHeader renders the raw object (header + body).
func (*Tree) SerializeWithoutHeader ¶
SerializeWithoutHeader renders the raw tree body bytes.