git

package
v0.0.0-...-18b9543 Latest Latest
Warning

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

Go to latest
Published: Jul 27, 2020 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func FindRepo

func FindRepo(path string) (string, error)

FindRepo return git repository path if .git directory is not exist in path, find parent directory recursively.

func HashObject

func HashObject(obj GitObject) (string, []byte)

HashObject return object hash and serialized data

func WriteIndex

func WriteIndex(repo *GitRepository, index *GitIndex) error

func WriteObject

func WriteObject(repo *GitRepository, obj GitObject) (string, error)

Types

type GitBlob

type GitBlob struct {
	Data []byte
}

func (*GitBlob) Deserialize

func (o *GitBlob) Deserialize(data []byte)

func (*GitBlob) Serialize

func (o *GitBlob) Serialize() []byte

func (*GitBlob) Type

func (o *GitBlob) Type() []byte

type GitCommit

type GitCommit struct {
	Tree      string
	Parent    string
	Author    GitUser
	Committer GitUser
	Message   string
}

func (*GitCommit) Deserialize

func (o *GitCommit) Deserialize(data []byte)

func (*GitCommit) Serialize

func (o *GitCommit) Serialize() []byte

func (*GitCommit) Type

func (o *GitCommit) Type() []byte

type GitIndex

type GitIndex struct {
	Entries []*IndexEntry
}

func ReadIndex

func ReadIndex(repo *GitRepository) (*GitIndex, error)

type GitObject

type GitObject interface {
	Serialize() []byte
	Deserialize([]byte)
	Type() []byte
}

func FindObject

func FindObject(repo *GitRepository, sha, objType string) (GitObject, error)

func NewGitBlob

func NewGitBlob(data []byte) GitObject

func NewGitCommitFromObjData

func NewGitCommitFromObjData(data []byte) GitObject

func NewGitTree

func NewGitTree(data []byte) GitObject

func NewGitTreeFromIndex

func NewGitTreeFromIndex(index *GitIndex) GitObject

func ReadObject

func ReadObject(repo *GitRepository, sha string) (GitObject, error)

ReadObject retrun a GitObject whose exact type depends on the object.

type GitRepository

type GitRepository struct {
	Worktree string
	GitDir   string
}

func CreateAndInitializeRepo

func CreateAndInitializeRepo(path string) (*GitRepository, error)

Create a new repository at path

func NewGitRepository

func NewGitRepository(path string) (*GitRepository, error)

NewGitRepository return `GitRepository` return error if ".git" dir is not exists in path.

func NewGitRepositoryForceCreate

func NewGitRepositoryForceCreate(path string) (*GitRepository, error)

NewGitRepository return `GitRepository` force create if path is not Git directory.

func (*GitRepository) CreateRepoDir

func (gr *GitRepository) CreateRepoDir(path string) error

func (*GitRepository) RepoPath

func (gr *GitRepository) RepoPath(path string) string

RepoPath return path joined ".git" directory

func (*GitRepository) SaveRepoFile

func (gr *GitRepository) SaveRepoFile(path string, data []byte) error

SaveRepoFile save file to path which joined ".git".

type GitTree

type GitTree struct {
	Entries []*GitTreeEntry
}

func (*GitTree) Deserialize

func (o *GitTree) Deserialize(data []byte)

func (*GitTree) Serialize

func (o *GitTree) Serialize() []byte

func (*GitTree) Type

func (o *GitTree) Type() []byte

type GitTreeEntry

type GitTreeEntry struct {
	Mode os.FileMode
	Path string
	Sha  string
}

func ParseTree

func ParseTree(data []byte) []*GitTreeEntry

type GitUser

type GitUser struct {
	Name  string
	Email string
	Time  string
}

type IndexEntry

type IndexEntry struct {
	Ctime    uint64
	Mtime    uint64
	Dev      uint32
	Ino      uint32
	Mode     os.FileMode
	Uid      uint32
	Gid      uint32
	FileSize uint32
	ObjectID string
	Flags    uint16
	FilePath string
}

func NewIndexEntry

func NewIndexEntry(info os.FileInfo, path, sha string) *IndexEntry

Jump to

Keyboard shortcuts

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