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