Documentation

Overview

    package plumbing implement the core interfaces and structs used by go-git

    Index

    Constants

    This section is empty.

    Variables

    View Source
    var (
    	ErrObjectNotFound = errors.New("object not found")
    	// ErrInvalidType is returned when an invalid object type is provided.
    	ErrInvalidType = errors.New("invalid object type")
    )
    View Source
    var (
    	ErrReferenceNotFound = errors.New("reference not found")
    )
    View Source
    var RefRevParseRules = []string{
    	"refs/%s",
    	"refs/tags/%s",
    	"refs/heads/%s",
    	"refs/remotes/%s",
    	"refs/remotes/%s/HEAD",
    }

      RefRevParseRules are a set of rules to parse references into short names. These are the same rules as used by git in shorten_unambiguous_ref. See: https://github.com/git/git/blob/e0aaa1b6532cfce93d87af9bc813fb2e7a7ce9d7/refs.c#L417

      Functions

      func HashesSort

      func HashesSort(a []Hash)

        HashesSort sorts a slice of Hashes in increasing order.

        Types

        type DeltaObject

        type DeltaObject interface {
        	EncodedObject
        	// BaseHash returns the hash of the object used as base for this delta.
        	BaseHash() Hash
        	// ActualHash returns the hash of the object after applying the delta.
        	ActualHash() Hash
        	// Size returns the size of the object after applying the delta.
        	ActualSize() int64
        }

          DeltaObject is an EncodedObject representing a delta.

          type EncodedObject

          type EncodedObject interface {
          	Hash() Hash
          	Type() ObjectType
          	SetType(ObjectType)
          	Size() int64
          	SetSize(int64)
          	Reader() (io.ReadCloser, error)
          	Writer() (io.WriteCloser, error)
          }

            Object is a generic representation of any git object

            type Hash

            type Hash [20]byte

              Hash SHA1 hased content

              var ZeroHash Hash

                ZeroHash is Hash with value zero

                func ComputeHash

                func ComputeHash(t ObjectType, content []byte) Hash

                  ComputeHash compute the hash for a given ObjectType and content

                  func NewHash

                  func NewHash(s string) Hash

                    NewHash return a new Hash from a hexadecimal hash representation

                    func (Hash) IsZero

                    func (h Hash) IsZero() bool

                    func (Hash) String

                    func (h Hash) String() string

                    type HashSlice

                    type HashSlice []Hash

                      HashSlice attaches the methods of sort.Interface to []Hash, sorting in increasing order.

                      func (HashSlice) Len

                      func (p HashSlice) Len() int

                      func (HashSlice) Less

                      func (p HashSlice) Less(i, j int) bool

                      func (HashSlice) Swap

                      func (p HashSlice) Swap(i, j int)

                      type Hasher

                      type Hasher struct {
                      	hash.Hash
                      }

                      func NewHasher

                      func NewHasher(t ObjectType, size int64) Hasher

                      func (Hasher) Sum

                      func (h Hasher) Sum() (hash Hash)

                      type MemoryObject

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

                        MemoryObject on memory Object implementation

                        func (*MemoryObject) Close

                        func (o *MemoryObject) Close() error

                          Close releases any resources consumed by the object when it is acting as a ObjectWriter.

                          func (*MemoryObject) Hash

                          func (o *MemoryObject) Hash() Hash

                            Hash returns the object Hash, the hash is calculated on-the-fly the first time it's called, in all subsequent calls the same Hash is returned even if the type or the content have changed. The Hash is only generated if the size of the content is exactly the object size.

                            func (*MemoryObject) Reader

                            func (o *MemoryObject) Reader() (io.ReadCloser, error)

                              Reader returns a ObjectReader used to read the object's content.

                              func (*MemoryObject) SetSize

                              func (o *MemoryObject) SetSize(s int64)

                                SetSize set the object size, a content of the given size should be written afterwards

                                func (*MemoryObject) SetType

                                func (o *MemoryObject) SetType(t ObjectType)

                                  SetType sets the ObjectType

                                  func (*MemoryObject) Size

                                  func (o *MemoryObject) Size() int64

                                    Size return the size of the object

                                    func (*MemoryObject) Type

                                    func (o *MemoryObject) Type() ObjectType

                                      Type return the ObjectType

                                      func (*MemoryObject) Write

                                      func (o *MemoryObject) Write(p []byte) (n int, err error)

                                      func (*MemoryObject) Writer

                                      func (o *MemoryObject) Writer() (io.WriteCloser, error)

                                        Writer returns a ObjectWriter used to write the object's content.

                                        type ObjectType

                                        type ObjectType int8

                                          ObjectType internal object type Integer values from 0 to 7 map to those exposed by git. AnyObject is used to represent any from 0 to 7.

                                          const (
                                          	InvalidObject ObjectType = 0
                                          	CommitObject  ObjectType = 1
                                          	TreeObject    ObjectType = 2
                                          	BlobObject    ObjectType = 3
                                          	TagObject     ObjectType = 4
                                          	// 5 reserved for future expansion
                                          	OFSDeltaObject ObjectType = 6
                                          	REFDeltaObject ObjectType = 7
                                          
                                          	AnyObject ObjectType = -127
                                          )

                                          func ParseObjectType

                                          func ParseObjectType(value string) (typ ObjectType, err error)

                                            ParseObjectType parses a string representation of ObjectType. It returns an error on parse failure.

                                            func (ObjectType) Bytes

                                            func (t ObjectType) Bytes() []byte

                                            func (ObjectType) IsDelta

                                            func (t ObjectType) IsDelta() bool

                                              IsDelta returns true for any ObjectTyoe that represents a delta (i.e. REFDeltaObject or OFSDeltaObject).

                                              func (ObjectType) String

                                              func (t ObjectType) String() string

                                              func (ObjectType) Valid

                                              func (t ObjectType) Valid() bool

                                                Valid returns true if t is a valid ObjectType.

                                                type PermanentError

                                                type PermanentError struct {
                                                	Err error
                                                }

                                                func NewPermanentError

                                                func NewPermanentError(err error) *PermanentError

                                                func (*PermanentError) Error

                                                func (e *PermanentError) Error() string

                                                type Reference

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

                                                  Reference is a representation of git reference

                                                  func NewHashReference

                                                  func NewHashReference(n ReferenceName, h Hash) *Reference

                                                    NewHashReference creates a new HashReference reference

                                                    func NewReferenceFromStrings

                                                    func NewReferenceFromStrings(name, target string) *Reference

                                                      NewReferenceFromStrings creates a reference from name and target as string, the resulting reference can be a SymbolicReference or a HashReference base on the target provided

                                                      func NewSymbolicReference

                                                      func NewSymbolicReference(n, target ReferenceName) *Reference

                                                        NewSymbolicReference creates a new SymbolicReference reference

                                                        func (*Reference) Hash

                                                        func (r *Reference) Hash() Hash

                                                          Hash return the hash of a hash reference

                                                          func (*Reference) Name

                                                          func (r *Reference) Name() ReferenceName

                                                            Name return the name of a reference

                                                            func (*Reference) String

                                                            func (r *Reference) String() string

                                                            func (*Reference) Strings

                                                            func (r *Reference) Strings() [2]string

                                                              Strings dump a reference as a [2]string

                                                              func (*Reference) Target

                                                              func (r *Reference) Target() ReferenceName

                                                                Target return the target of a symbolic reference

                                                                func (*Reference) Type

                                                                func (r *Reference) Type() ReferenceType

                                                                  Type return the type of a reference

                                                                  type ReferenceName

                                                                  type ReferenceName string

                                                                    ReferenceName reference name's

                                                                    const (
                                                                    	HEAD   ReferenceName = "HEAD"
                                                                    	Master ReferenceName = "refs/heads/master"
                                                                    )

                                                                    func NewBranchReferenceName

                                                                    func NewBranchReferenceName(name string) ReferenceName

                                                                      NewBranchReferenceName returns a reference name describing a branch based on his short name.

                                                                      func NewNoteReferenceName

                                                                      func NewNoteReferenceName(name string) ReferenceName

                                                                        NewNoteReferenceName returns a reference name describing a note based on his short name.

                                                                        func NewRemoteHEADReferenceName

                                                                        func NewRemoteHEADReferenceName(remote string) ReferenceName

                                                                          NewRemoteHEADReferenceName returns a reference name describing a the HEAD branch of a remote.

                                                                          func NewRemoteReferenceName

                                                                          func NewRemoteReferenceName(remote, name string) ReferenceName

                                                                            NewRemoteReferenceName returns a reference name describing a remote branch based on his short name and the remote name.

                                                                            func NewTagReferenceName

                                                                            func NewTagReferenceName(name string) ReferenceName

                                                                              NewTagReferenceName returns a reference name describing a tag based on short his name.

                                                                              func (ReferenceName) IsBranch

                                                                              func (r ReferenceName) IsBranch() bool

                                                                                IsBranch check if a reference is a branch

                                                                                func (ReferenceName) IsNote

                                                                                func (r ReferenceName) IsNote() bool

                                                                                  IsNote check if a reference is a note

                                                                                  func (ReferenceName) IsRemote

                                                                                  func (r ReferenceName) IsRemote() bool

                                                                                    IsRemote check if a reference is a remote

                                                                                    func (ReferenceName) IsTag

                                                                                    func (r ReferenceName) IsTag() bool

                                                                                      IsTag check if a reference is a tag

                                                                                      func (ReferenceName) Short

                                                                                      func (r ReferenceName) Short() string

                                                                                        Short returns the short name of a ReferenceName

                                                                                        func (ReferenceName) String

                                                                                        func (r ReferenceName) String() string

                                                                                        type ReferenceType

                                                                                        type ReferenceType int8

                                                                                          ReferenceType reference type's

                                                                                          const (
                                                                                          	InvalidReference  ReferenceType = 0
                                                                                          	HashReference     ReferenceType = 1
                                                                                          	SymbolicReference ReferenceType = 2
                                                                                          )

                                                                                          func (ReferenceType) String

                                                                                          func (r ReferenceType) String() string

                                                                                          type Revision

                                                                                          type Revision string

                                                                                            Revision represents a git revision to get more details about git revisions please check git manual page : https://www.kernel.org/pub/software/scm/git/docs/gitrevisions.html

                                                                                            func (Revision) String

                                                                                            func (r Revision) String() string

                                                                                            type UnexpectedError

                                                                                            type UnexpectedError struct {
                                                                                            	Err error
                                                                                            }

                                                                                            func NewUnexpectedError

                                                                                            func NewUnexpectedError(err error) *UnexpectedError

                                                                                            func (*UnexpectedError) Error

                                                                                            func (e *UnexpectedError) Error() string

                                                                                            Directories

                                                                                            Path Synopsis
                                                                                            format
                                                                                            commitgraph
                                                                                            Package commitgraph implements encoding and decoding of commit-graph files.
                                                                                            Package commitgraph implements encoding and decoding of commit-graph files.
                                                                                            config
                                                                                            Package config implements encoding and decoding of git config files.
                                                                                            Package config implements encoding and decoding of git config files.
                                                                                            gitignore
                                                                                            Package gitignore implements matching file system paths to gitignore patterns that can be automatically read from a git repository tree in the order of definition priorities.
                                                                                            Package gitignore implements matching file system paths to gitignore patterns that can be automatically read from a git repository tree in the order of definition priorities.
                                                                                            idxfile
                                                                                            Package idxfile implements encoding and decoding of packfile idx files.
                                                                                            Package idxfile implements encoding and decoding of packfile idx files.
                                                                                            index
                                                                                            Package index implements encoding and decoding of index format files.
                                                                                            Package index implements encoding and decoding of index format files.
                                                                                            objfile
                                                                                            Package objfile implements encoding and decoding of object files.
                                                                                            Package objfile implements encoding and decoding of object files.
                                                                                            packfile
                                                                                            Package packfile implements encoding and decoding of packfile format.
                                                                                            Package packfile implements encoding and decoding of packfile format.
                                                                                            pktline
                                                                                            Package pktline implements reading payloads form pkt-lines and encoding pkt-lines from payloads.
                                                                                            Package pktline implements reading payloads form pkt-lines and encoding pkt-lines from payloads.
                                                                                            Package object contains implementations of all Git objects and utility functions to work with them.
                                                                                            Package object contains implementations of all Git objects and utility functions to work with them.
                                                                                            commitgraph
                                                                                            Package commitgraph provides an interface for efficient traversal over Git commit graph either through the regular object storage, or optionally with the index stored in commit-graph file (Git 2.18+).
                                                                                            Package commitgraph provides an interface for efficient traversal over Git commit graph either through the regular object storage, or optionally with the index stored in commit-graph file (Git 2.18+).
                                                                                            protocol
                                                                                            packp/capability
                                                                                            Package capability defines the server and client capabilities.
                                                                                            Package capability defines the server and client capabilities.
                                                                                            packp/sideband
                                                                                            Package sideband implements a sideband mutiplex/demultiplexer
                                                                                            Package sideband implements a sideband mutiplex/demultiplexer
                                                                                            Package revlist provides support to access the ancestors of commits, in a similar way as the git-rev-list command.
                                                                                            Package revlist provides support to access the ancestors of commits, in a similar way as the git-rev-list command.
                                                                                            Package storer defines the interfaces to store objects, references, etc.
                                                                                            Package storer defines the interfaces to store objects, references, etc.
                                                                                            Package transport includes the implementation for different transport protocols.
                                                                                            Package transport includes the implementation for different transport protocols.
                                                                                            client
                                                                                            Package client contains helper function to deal with the different client protocols.
                                                                                            Package client contains helper function to deal with the different client protocols.
                                                                                            file
                                                                                            Package file implements the file transport protocol.
                                                                                            Package file implements the file transport protocol.
                                                                                            git
                                                                                            Package git implements the git transport protocol.
                                                                                            Package git implements the git transport protocol.
                                                                                            http
                                                                                            Package http implements the HTTP transport protocol.
                                                                                            Package http implements the HTTP transport protocol.
                                                                                            server
                                                                                            Package server implements the git server protocol.
                                                                                            Package server implements the git server protocol.
                                                                                            ssh
                                                                                            Package ssh implements the SSH transport protocol.
                                                                                            Package ssh implements the SSH transport protocol.
                                                                                            test
                                                                                            Package test implements common test suite for different transport implementations.
                                                                                            Package test implements common test suite for different transport implementations.