Documentation
¶
Index ¶
- Constants
- Variables
- func Add(repoPath string, opts ...AddOptions) error
- func BinVersion() (string, error)
- func Checkout(repoPath, branch string, opts ...CheckoutOptions) error
- func Clone(url, dst string, opts ...CloneOptions) error
- func CreateCommit(repoPath string, committer *Signature, message string, opts ...CommitOptions) error
- func DeleteBranch(repoPath, name string, opts ...DeleteBranchOptions) error
- func DiffNameOnly(repoPath, base, head string, opts ...DiffNameOnlyOptions) ([]string, error)
- func Fsck(repoPath string, opts ...FsckOptions) error
- func HasTag(repoPath, tag string, opts ...ShowRefVerifyOptions) bool
- func Init(path string, opts ...InitOptions) error
- func IsURLAccessible(timeout time.Duration, url string) bool
- func MergeBase(repoPath, base, head string, opts ...MergeBaseOptions) (string, error)
- func Move(repoPath, src, dst string, opts ...MoveOptions) error
- func Push(repoPath, remote, branch string, opts ...PushOptions) error
- func ReceivePack(path string, opts ...ReceivePackOptions) ([]byte, error)
- func RefShortName(ref string) string
- func RemoteAdd(repoPath, name, url string, opts ...RemoteAddOptions) error
- func RemoteGetURL(repoPath, name string, opts ...RemoteGetURLOptions) ([]string, error)
- func RemoteRemove(repoPath, name string, opts ...RemoteRemoveOptions) error
- func RemoteSetURL(repoPath, name, newurl string, opts ...RemoteSetURLOptions) error
- func RemoteSetURLAdd(repoPath, name, newurl string, opts ...RemoteSetURLAddOptions) error
- func RemoteSetURLDelete(repoPath, name, regex string, opts ...RemoteSetURLDeleteOptions) error
- func Remotes(repoPath string, opts ...RemotesOptions) ([]string, error)
- func RepoAdd(repoPath string, opts ...AddOptions) errordeprecated
- func RepoAddRemote(repoPath, name, url string, opts ...RemoteAddOptions) errordeprecated
- func RepoCheckout(repoPath, branch string, opts ...CheckoutOptions) errordeprecated
- func RepoCommit(repoPath string, committer *Signature, message string, opts ...CommitOptions) errordeprecated
- func RepoDeleteBranch(repoPath, name string, opts ...DeleteBranchOptions) errordeprecated
- func RepoDiffNameOnly(repoPath, base, head string, opts ...DiffNameOnlyOptions) ([]string, error)deprecated
- func RepoFsck(repoPath string, opts ...FsckOptions) errordeprecated
- func RepoHasBranch(repoPath, branch string, opts ...ShowRefVerifyOptions) bool
- func RepoHasReference(repoPath, ref string, opts ...ShowRefVerifyOptions) bool
- func RepoHasTag(repoPath, tag string, opts ...ShowRefVerifyOptions) booldeprecated
- func RepoMergeBase(repoPath, base, head string, opts ...MergeBaseOptions) (string, error)deprecated
- func RepoMove(repoPath, src, dst string, opts ...MoveOptions) errordeprecated
- func RepoPush(repoPath, remote, branch string, opts ...PushOptions) errordeprecated
- func RepoRemoveRemote(repoPath, name string, opts ...RemoteRemoveOptions) errordeprecated
- func RepoReset(repoPath, rev string, opts ...ResetOptions) errordeprecated
- func RepoShowRefVerify(repoPath, ref string, opts ...ShowRefVerifyOptions) (string, error)deprecated
- func RepoTags(repoPath string, opts ...TagsOptions) ([]string, error)
- func Reset(repoPath, rev string, opts ...ResetOptions) error
- func SetOutput(output io.Writer)
- func SetPrefix(prefix string)
- func ShowRefVerify(repoPath, ref string, opts ...ShowRefVerifyOptions) (string, error)
- func StreamParseDiff(r io.Reader, done chan<- SteamParseDiffResult, ...)
- func SymbolicRef(repoPath string, opts ...SymbolicRefOptions) (string, error)
- func UnescapeChars(in []byte) []byte
- func UpdateServerInfo(path string, opts ...UpdateServerInfoOptions) error
- func UploadPack(path string, opts ...UploadPackOptions) ([]byte, error)
- type AddOptions
- type AddRemoteOptionsdeprecated
- type ArchiveFormat
- type Blame
- type BlameOptions
- type Blob
- type CatFileBlobOptions
- type CatFileCommitOptions
- type CatFileTypeOptions
- type CheckoutOptions
- type CloneOptions
- type Command
- func (c *Command) AddArgs(args ...string) *Command
- func (c *Command) AddCommitter(committer *Signature) *Command
- func (c *Command) AddEnvs(envs ...string) *Command
- func (c *Command) AddOptions(opts ...CommandOptions) *Command
- func (c *Command) Run() ([]byte, error)
- func (c *Command) RunInDir(dir string) ([]byte, error)
- func (c *Command) RunInDirPipeline(stdout, stderr io.Writer, dir string) error
- func (c *Command) RunInDirPipelineWithTimeout(timeout time.Duration, stdout, stderr io.Writer, dir string) (err error)deprecated
- func (c *Command) RunInDirWithOptions(dir string, opts ...RunInDirOptions) (err error)
- func (c *Command) RunInDirWithTimeout(timeout time.Duration, dir string) ([]byte, error)deprecated
- func (c *Command) RunWithTimeout(timeout time.Duration) ([]byte, error)deprecated
- func (c *Command) SetTimeout(timeout time.Duration)
- func (c *Command) String() string
- func (c Command) WithContext(ctx context.Context) *Command
- func (c Command) WithTimeout(timeout time.Duration) *Command
- type CommandOptions
- type Commit
- func (c *Commit) Ancestors(opts ...LogOptions) ([]*Commit, error)
- func (c *Commit) CommitByPath(opts ...CommitByRevisionOptions) (*Commit, error)
- func (c *Commit) CommitsAfter(after string, opts ...RevListOptions) ([]*Commit, error)
- func (c *Commit) CommitsByPage(page, size int, opts ...CommitsByPageOptions) ([]*Commit, error)
- func (c *Commit) CommitsCount(opts ...RevListCountOptions) (int64, error)
- func (c *Commit) CreateArchive(format ArchiveFormat, dst string) error
- func (c *Commit) FilesChangedAfter(after string, opts ...DiffNameOnlyOptions) ([]string, error)
- func (c *Commit) IsImageFile(subpath string) (bool, error)
- func (c *Commit) IsImageFileByIndex(index string) (bool, error)
- func (c *Commit) Parent(n int, opts ...CatFileCommitOptions) (*Commit, error)
- func (c *Commit) ParentID(n int) (*SHA1, error)
- func (c *Commit) ParentsCount() int
- func (c *Commit) SearchCommits(pattern string, opts ...SearchCommitsOptions) ([]*Commit, error)
- func (c *Commit) ShowNameStatus(opts ...ShowNameStatusOptions) (*NameStatus, error)
- func (c *Commit) Submodule(path string) (*Submodule, error)
- func (c *Commit) Submodules() (Submodules, error)
- func (c *Commit) Summary() string
- type CommitByRevisionOptions
- type CommitOptions
- type CommitsByPageOptions
- type CommitsInfoOptions
- type CommitsSinceOptions
- type CountObject
- type CountObjectsOptions
- type CreateTagOptions
- type DeleteBranchOptions
- type DeleteTagOptions
- type Diff
- type DiffBinaryOptions
- type DiffFile
- func (f *DiffFile) IsBinary() bool
- func (f *DiffFile) IsCreated() bool
- func (f *DiffFile) IsDeleted() bool
- func (f *DiffFile) IsIncomplete() bool
- func (f *DiffFile) IsRenamed() bool
- func (f *DiffFile) IsSubmodule() bool
- func (f *DiffFile) Mode() EntryMode
- func (f *DiffFile) NumAdditions() int
- func (f *DiffFile) NumDeletions() int
- func (f *DiffFile) NumSections() int
- func (f *DiffFile) OldMode() EntryMode
- func (f *DiffFile) OldName() string
- type DiffFileType
- type DiffLine
- type DiffLineType
- type DiffNameOnlyOptions
- type DiffOptions
- type DiffSection
- type Entries
- type EntryCommitInfo
- type EntryMode
- type FetchOptions
- type FsckOptions
- type GrepOptions
- type GrepResult
- type Hook
- type HookName
- type InitOptions
- type LatestCommitTimeOptions
- type LogOptions
- type LsRemoteOptions
- type LsTreeOptions
- type MergeBaseOptions
- type MoveOptions
- type NameStatus
- type ObjectType
- type PullOptions
- type PushOptions
- type RawDiffFormat
- type RawDiffOptions
- type ReceivePackOptions
- type Reference
- type RemoteAddOptions
- type RemoteGetURLOptions
- type RemoteRemoveOptions
- type RemoteSetURLAddOptions
- type RemoteSetURLDeleteOptions
- type RemoteSetURLOptions
- type RemotesOptions
- type RemoveRemoteOptionsdeprecated
- type Repository
- func (r *Repository) Add(opts ...AddOptions) error
- func (r *Repository) AddRemote(name, url string, opts ...RemoteAddOptions) errordeprecated
- func (r *Repository) BlameFile(rev, file string, opts ...BlameOptions) (*Blame, error)
- func (r *Repository) BranchCommit(branch string, opts ...CatFileCommitOptions) (*Commit, error)
- func (r *Repository) BranchCommitID(branch string, opts ...ShowRefVerifyOptions) (string, error)
- func (r *Repository) Branches() ([]string, error)
- func (r *Repository) CatFileBlob(rev string, opts ...CatFileBlobOptions) (*Blob, error)
- func (r *Repository) CatFileCommit(rev string, opts ...CatFileCommitOptions) (*Commit, error)
- func (r *Repository) CatFileType(rev string, opts ...CatFileTypeOptions) (ObjectType, error)
- func (r *Repository) Checkout(branch string, opts ...CheckoutOptions) error
- func (r *Repository) Commit(committer *Signature, message string, opts ...CommitOptions) error
- func (r *Repository) CommitByRevision(rev string, opts ...CommitByRevisionOptions) (*Commit, error)
- func (r *Repository) CommitsByPage(rev string, page, size int, opts ...CommitsByPageOptions) ([]*Commit, error)
- func (r *Repository) CommitsSince(rev string, since time.Time, opts ...CommitsSinceOptions) ([]*Commit, error)
- func (r *Repository) CountObjects(opts ...CountObjectsOptions) (*CountObject, error)
- func (r *Repository) CreateTag(name, rev string, opts ...CreateTagOptions) error
- func (r *Repository) DeleteBranch(name string, opts ...DeleteBranchOptions) error
- func (r *Repository) DeleteTag(name string, opts ...DeleteTagOptions) error
- func (r *Repository) Diff(rev string, maxFiles, maxFileLines, maxLineChars int, opts ...DiffOptions) (*Diff, error)
- func (r *Repository) DiffBinary(base, head string, opts ...DiffBinaryOptions) ([]byte, error)
- func (r *Repository) DiffNameOnly(base, head string, opts ...DiffNameOnlyOptions) ([]string, error)
- func (r *Repository) Fetch(opts ...FetchOptions) error
- func (r *Repository) Fsck(opts ...FsckOptions) error
- func (r *Repository) Grep(pattern string, opts ...GrepOptions) []*GrepResult
- func (r *Repository) HasBranch(branch string, opts ...ShowRefVerifyOptions) bool
- func (r *Repository) HasReference(ref string, opts ...ShowRefVerifyOptions) bool
- func (r *Repository) HasTag(tag string, opts ...ShowRefVerifyOptions) bool
- func (r *Repository) Hook(dir string, name HookName) (*Hook, error)
- func (r *Repository) Hooks(dir string) ([]*Hook, error)
- func (r *Repository) LatestCommitTime(opts ...LatestCommitTimeOptions) (time.Time, error)
- func (r *Repository) Log(rev string, opts ...LogOptions) ([]*Commit, error)
- func (r *Repository) LsTree(treeID string, opts ...LsTreeOptions) (*Tree, error)
- func (r *Repository) MergeBase(base, head string, opts ...MergeBaseOptions) (string, error)
- func (r *Repository) Move(src, dst string, opts ...MoveOptions) error
- func (r *Repository) NewHook(dir string, name HookName) *Hook
- func (r *Repository) Path() string
- func (r *Repository) Pull(opts ...PullOptions) error
- func (r *Repository) Push(remote, branch string, opts ...PushOptions) error
- func (r *Repository) RawDiff(rev string, diffType RawDiffFormat, w io.Writer, opts ...RawDiffOptions) error
- func (r *Repository) RemoteAdd(name, url string, opts ...RemoteAddOptions) error
- func (r *Repository) RemoteGetURL(name string, opts ...RemoteGetURLOptions) ([]string, error)
- func (r *Repository) RemoteRemove(name string, opts ...RemoteRemoveOptions) error
- func (r *Repository) RemoteSetURL(name, newurl string, opts ...RemoteSetURLOptions) error
- func (r *Repository) RemoteSetURLAdd(name, newurl string, opts ...RemoteSetURLAddOptions) error
- func (r *Repository) RemoteSetURLDelete(name, regex string, opts ...RemoteSetURLDeleteOptions) error
- func (r *Repository) Remotes(opts ...RemotesOptions) ([]string, error)
- func (r *Repository) RemoveRemote(name string, opts ...RemoteRemoveOptions) errordeprecated
- func (r *Repository) Reset(rev string, opts ...ResetOptions) error
- func (r *Repository) RevList(refspecs []string, opts ...RevListOptions) ([]*Commit, error)
- func (r *Repository) RevListCount(refspecs []string, opts ...RevListCountOptions) (int64, error)
- func (r *Repository) RevParse(rev string, opts ...RevParseOptions) (string, error)
- func (r *Repository) SearchCommits(rev, pattern string, opts ...SearchCommitsOptions) ([]*Commit, error)
- func (r *Repository) ShowNameStatus(rev string, opts ...ShowNameStatusOptions) (*NameStatus, error)
- func (r *Repository) ShowRef(opts ...ShowRefOptions) ([]*Reference, error)
- func (r *Repository) ShowRefVerify(ref string, opts ...ShowRefVerifyOptions) (string, error)
- func (r *Repository) StashDiff(index int, maxFiles, maxFileLines, maxLineChars int, opts ...DiffOptions) (*Diff, error)
- func (r *Repository) StashList(opts ...StashListOptions) ([]*Stash, error)
- func (r *Repository) StashPush(msg string, opts ...StashPushOptions) error
- func (r *Repository) SymbolicRef(opts ...SymbolicRefOptions) (string, error)
- func (r *Repository) Tag(name string, opts ...TagOptions) (*Tag, error)
- func (r *Repository) TagCommit(tag string, opts ...CatFileCommitOptions) (*Commit, error)
- func (r *Repository) TagCommitID(tag string, opts ...ShowRefVerifyOptions) (string, error)
- func (r *Repository) Tags(opts ...TagsOptions) ([]string, error)
- type ResetOptions
- type RevListCountOptions
- type RevListOptions
- type RevParseOptions
- type RunInDirOptions
- type SHA1
- type SearchCommitsOptions
- type ShowNameStatusOptions
- type ShowRefOptions
- type ShowRefVerifyOptions
- type Signature
- type Stash
- type StashListOptions
- type StashPushOptions
- type SteamParseDiffResult
- type Submodule
- type Submodules
- type SymbolicRefOptions
- type Tag
- type TagOptions
- type TagsOptions
- type Tree
- func (t *Tree) Blob(subpath string, opts ...LsTreeOptions) (*Blob, error)
- func (t *Tree) BlobByIndex(index string) (*Blob, error)
- func (t *Tree) Entries(opts ...LsTreeOptions) (Entries, error)
- func (t *Tree) Subtree(subpath string, opts ...LsTreeOptions) (*Tree, error)
- func (t *Tree) TreeEntry(subpath string, opts ...LsTreeOptions) (*TreeEntry, error)
- type TreeEntry
- func (e *TreeEntry) Blob() *Blob
- func (e *TreeEntry) ID() *SHA1
- func (e *TreeEntry) IsBlob() bool
- func (e *TreeEntry) IsCommit() bool
- func (e *TreeEntry) IsExec() bool
- func (e *TreeEntry) IsSymlink() bool
- func (e *TreeEntry) IsTree() bool
- func (e *TreeEntry) Mode() EntryMode
- func (e *TreeEntry) Name() string
- func (e *TreeEntry) Size() int64
- func (e *TreeEntry) Type() ObjectType
- type UpdateServerInfoOptions
- type UploadPackOptions
Constants ¶
const ( RefsHeads = "refs/heads/" RefsTags = "refs/tags/" )
const DefaultHooksDir = "hooks"
DefaultHooksDir is the default directory for Git hooks.
const DefaultTimeout = time.Minute
DefaultTimeout is the default timeout duration for all commands.
const EmptyID = "0000000000000000000000000000000000000000"
EmptyID is an ID with empty SHA-1 hash.
const LogFormatHashOnly = `format:%H`
Variables ¶
var ( ErrParentNotExist = errors.New("parent does not exist") ErrSubmoduleNotExist = errors.New("submodule does not exist") ErrRevisionNotExist = errors.New("revision does not exist") ErrRemoteNotExist = errors.New("remote does not exist") ErrURLNotExist = errors.New("URL does not exist") ErrExecTimeout = errors.New("execution was timed out") ErrNoMergeBase = errors.New("no merge based was found") ErrNotBlob = errors.New("the entry is not a blob") ErrNotDeleteNonPushURLs = errors.New("will not delete all non-push URLs") )
var ( // ServerSideHooks contains a list of Git hooks that are supported on the server // side. ServerSideHooks = []HookName{HookPreReceive, HookUpdate, HookPostReceive} // ServerSideHookSamples contains samples of Git hooks that are supported on the // server side. ServerSideHookSamples = map[HookName]string{ HookPreReceive: `#!/bin/sh # # An example hook script to make use of push options. # The example simply echoes all push options that start with 'echoback=' # and rejects all pushes when the "reject" push option is used. # # To enable this hook, rename this file to "pre-receive". if test -n "$GIT_PUSH_OPTION_COUNT" then i=0 while test "$i" -lt "$GIT_PUSH_OPTION_COUNT" do eval "value=\$GIT_PUSH_OPTION_$i" case "$value" in echoback=*) echo "echo from the pre-receive-hook: ${value#*=}" >&2 ;; reject) exit 1 esac i=$((i + 1)) done fi `, HookUpdate: `#!/bin/sh # # An example hook script to block unannotated tags from entering. # Called by "git receive-pack" with arguments: refname sha1-old sha1-new # # To enable this hook, rename this file to "update". # # Config # ------ # hooks.allowunannotated # This boolean sets whether unannotated tags will be allowed into the # repository. By default they won't be. # hooks.allowdeletetag # This boolean sets whether deleting tags will be allowed in the # repository. By default they won't be. # hooks.allowmodifytag # This boolean sets whether a tag may be modified after creation. By default # it won't be. # hooks.allowdeletebranch # This boolean sets whether deleting branches will be allowed in the # repository. By default they won't be. # hooks.denycreatebranch # This boolean sets whether remotely creating branches will be denied # in the repository. By default this is allowed. # # --- Command line refname="$1" oldrev="$2" newrev="$3" # --- Safety check if [ -z "$GIT_DIR" ]; then echo "Don't run this script from the command line." >&2 echo " (if you want, you could supply GIT_DIR then run" >&2 echo " $0 <ref> <oldrev> <newrev>)" >&2 exit 1 fi if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then echo "usage: $0 <ref> <oldrev> <newrev>" >&2 exit 1 fi # --- Config allowunannotated=$(git config --bool hooks.allowunannotated) allowdeletebranch=$(git config --bool hooks.allowdeletebranch) denycreatebranch=$(git config --bool hooks.denycreatebranch) allowdeletetag=$(git config --bool hooks.allowdeletetag) allowmodifytag=$(git config --bool hooks.allowmodifytag) # check for no description projectdesc=$(sed -e '1q' "$GIT_DIR/description") case "$projectdesc" in "Unnamed repository"* | "") echo "*** Project description file hasn't been set" >&2 exit 1 ;; esac # --- Check types # if $newrev is 0000...0000, it's a commit to delete a ref. zero="0000000000000000000000000000000000000000" if [ "$newrev" = "$zero" ]; then newrev_type=delete else newrev_type=$(git cat-file -t $newrev) fi case "$refname","$newrev_type" in refs/tags/*,commit) # un-annotated tag short_refname=${refname##refs/tags/} if [ "$allowunannotated" != "true" ]; then echo "*** The un-annotated tag, $short_refname, is not allowed in this repository" >&2 echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2 exit 1 fi ;; refs/tags/*,delete) # delete tag if [ "$allowdeletetag" != "true" ]; then echo "*** Deleting a tag is not allowed in this repository" >&2 exit 1 fi ;; refs/tags/*,tag) # annotated tag if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1 then echo "*** Tag '$refname' already exists." >&2 echo "*** Modifying a tag is not allowed in this repository." >&2 exit 1 fi ;; refs/heads/*,commit) # branch if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then echo "*** Creating a branch is not allowed in this repository" >&2 exit 1 fi ;; refs/heads/*,delete) # delete branch if [ "$allowdeletebranch" != "true" ]; then echo "*** Deleting a branch is not allowed in this repository" >&2 exit 1 fi ;; refs/remotes/*,commit) # tracking branch ;; refs/remotes/*,delete) # delete tracking branch if [ "$allowdeletebranch" != "true" ]; then echo "*** Deleting a tracking branch is not allowed in this repository" >&2 exit 1 fi ;; *) # Anything else (is there anything else?) echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2 exit 1 ;; esac # --- Finished exit 0 `, HookPostReceive: `#!/bin/sh # # An example hook script for the "post-receive" event. # # The "post-receive" script is run after receive-pack has accepted a pack # and the repository has been updated. It is passed arguments in through # stdin in the form # <oldrev> <newrev> <refname> # For example: # aa453216d1b3e49e7f6f98441fa56946ddcd6a20 68f7abf4e6f922807889f52bc043ecd31b79f814 refs/heads/master while read oldrev newrev refname do branch=$(git rev-parse --symbolic --abbrev-ref $refname) if [ "master" = "$branch" ]; then # Do something fi done`, } )
var ErrReferenceNotExist = errors.New("reference does not exist")
Functions ¶
func Add ¶
func Add(repoPath string, opts ...AddOptions) error
Add adds local changes to index for the repository in given path.
func BinVersion ¶
BinVersion returns current Git binary version that is used by this module.
func Checkout ¶
func Checkout(repoPath, branch string, opts ...CheckoutOptions) error
Checkout checks out to given branch for the repository in given path.
func Clone ¶
func Clone(url, dst string, opts ...CloneOptions) error
Clone clones the repository from remote URL to the destination.
func CreateCommit ¶
func CreateCommit(repoPath string, committer *Signature, message string, opts ...CommitOptions) error
CreateCommit commits local changes with given author, committer and message for the repository in given path.
func DeleteBranch ¶
func DeleteBranch(repoPath, name string, opts ...DeleteBranchOptions) error
DeleteBranch deletes the branch from the repository in given path.
func DiffNameOnly ¶
func DiffNameOnly(repoPath, base, head string, opts ...DiffNameOnlyOptions) ([]string, error)
DiffNameOnly returns a list of changed files between base and head revisions of the repository in given path.
func Fsck ¶
func Fsck(repoPath string, opts ...FsckOptions) error
Fsck verifies the connectivity and validity of the objects in the database for the repository in given path.
func HasTag ¶
func HasTag(repoPath, tag string, opts ...ShowRefVerifyOptions) bool
HasTag returns true if given tag exists in the repository in given path. The tag must be given in short name e.g. "v1.0.0".
func Init ¶
func Init(path string, opts ...InitOptions) error
Init initializes a new Git repository.
func IsURLAccessible ¶
IsURLAccessible returns true if given remote URL is accessible via Git within given timeout.
func MergeBase ¶
func MergeBase(repoPath, base, head string, opts ...MergeBaseOptions) (string, error)
MergeBase returns merge base between base and head revisions of the repository in given path.
func Move ¶
func Move(repoPath, src, dst string, opts ...MoveOptions) error
Move moves a file, a directory, or a symlink file or directory from source to destination for the repository in given path.
func Push ¶
func Push(repoPath, remote, branch string, opts ...PushOptions) error
Push pushes local changes to given remote and branch for the repository in given path.
func ReceivePack ¶
func ReceivePack(path string, opts ...ReceivePackOptions) ([]byte, error)
ReceivePack receives what is pushed into the repository in given path.
func RefShortName ¶
RefShortName returns short name of heads or tags. Other references will return original string.
func RemoteAdd ¶
func RemoteAdd(repoPath, name, url string, opts ...RemoteAddOptions) error
RemoteAdd adds a new remote to the repository in given path.
func RemoteGetURL ¶
func RemoteGetURL(repoPath, name string, opts ...RemoteGetURLOptions) ([]string, error)
RemoteGetURL retrieves URL(s) of a remote of the repository in given path.
func RemoteRemove ¶
func RemoteRemove(repoPath, name string, opts ...RemoteRemoveOptions) error
RemoteRemove removes a remote from the repository in given path.
func RemoteSetURL ¶
func RemoteSetURL(repoPath, name, newurl string, opts ...RemoteSetURLOptions) error
RemoteSetURL sets first URL of the remote with given name of the repository in given path.
func RemoteSetURLAdd ¶
func RemoteSetURLAdd(repoPath, name, newurl string, opts ...RemoteSetURLAddOptions) error
RemoteSetURLAdd appends an URL to the remote with given name of the repository in given path. Use RemoteSetURL to overwrite the URL(s) instead.
func RemoteSetURLDelete ¶
func RemoteSetURLDelete(repoPath, name, regex string, opts ...RemoteSetURLDeleteOptions) error
RemoteSetURLDelete deletes the remote with given name of the repository in given path.
func Remotes ¶
func Remotes(repoPath string, opts ...RemotesOptions) ([]string, error)
Remotes lists remotes of the repository in given path.
func RepoAdd
deprecated
func RepoAdd(repoPath string, opts ...AddOptions) error
Deprecated: Use Add instead.
func RepoAddRemote
deprecated
func RepoAddRemote(repoPath, name, url string, opts ...RemoteAddOptions) error
Deprecated: Use RemoteAdd instead.
func RepoCheckout
deprecated
func RepoCheckout(repoPath, branch string, opts ...CheckoutOptions) error
Deprecated: Use Checkout instead.
func RepoCommit
deprecated
func RepoCommit(repoPath string, committer *Signature, message string, opts ...CommitOptions) error
Deprecated: Use CreateCommit instead.
func RepoDeleteBranch
deprecated
func RepoDeleteBranch(repoPath, name string, opts ...DeleteBranchOptions) error
Deprecated: Use DeleteBranch instead.
func RepoDiffNameOnly
deprecated
func RepoDiffNameOnly(repoPath, base, head string, opts ...DiffNameOnlyOptions) ([]string, error)
Deprecated: Use DiffNameOnly instead.
func RepoFsck
deprecated
func RepoFsck(repoPath string, opts ...FsckOptions) error
Deprecated: Use Fsck instead.
func RepoHasBranch ¶
func RepoHasBranch(repoPath, branch string, opts ...ShowRefVerifyOptions) bool
RepoHasBranch returns true if given branch exists in the repository in given path. The branch must be given in short name e.g. "master".
func RepoHasReference ¶
func RepoHasReference(repoPath, ref string, opts ...ShowRefVerifyOptions) bool
RepoHasReference returns true if given reference exists in the repository in given path. The reference must be given in full refspec, e.g. "refs/heads/master".
func RepoHasTag
deprecated
func RepoHasTag(repoPath, tag string, opts ...ShowRefVerifyOptions) bool
Deprecated: Use HasTag instead.
func RepoMergeBase
deprecated
func RepoMergeBase(repoPath, base, head string, opts ...MergeBaseOptions) (string, error)
Deprecated: Use MergeBase instead.
func RepoMove
deprecated
func RepoMove(repoPath, src, dst string, opts ...MoveOptions) error
Deprecated: Use Move instead.
func RepoPush
deprecated
func RepoPush(repoPath, remote, branch string, opts ...PushOptions) error
Deprecated: Use Push instead.
func RepoRemoveRemote
deprecated
func RepoRemoveRemote(repoPath, name string, opts ...RemoteRemoveOptions) error
Deprecated: Use RemoteRemove instead.
func RepoReset
deprecated
func RepoReset(repoPath, rev string, opts ...ResetOptions) error
Deprecated: Use Reset instead.
func RepoShowRefVerify
deprecated
func RepoShowRefVerify(repoPath, ref string, opts ...ShowRefVerifyOptions) (string, error)
Deprecated: Use ShowRefVerify instead.
func RepoTags ¶
func RepoTags(repoPath string, opts ...TagsOptions) ([]string, error)
RepoTags returns a list of tags of the repository in given path.
func Reset ¶
func Reset(repoPath, rev string, opts ...ResetOptions) error
Reset resets working tree to given revision for the repository in given path.
func SetPrefix ¶
func SetPrefix(prefix string)
SetPrefix sets the prefix to be prepended to each log entry.
func ShowRefVerify ¶
func ShowRefVerify(repoPath, ref string, opts ...ShowRefVerifyOptions) (string, error)
ShowRefVerify returns the commit ID of given reference if it exists in the repository in given path.
func StreamParseDiff ¶
func StreamParseDiff(r io.Reader, done chan<- SteamParseDiffResult, maxFiles, maxFileLines, maxLineChars int)
StreamParseDiff parses the diff read from the given io.Reader. It does parse-on-read to minimize the time spent on huge diffs. It accepts a channel to notify and send error (if any) to the caller when the process is done. Therefore, this method should be called in a goroutine asynchronously.
func SymbolicRef ¶
func SymbolicRef(repoPath string, opts ...SymbolicRefOptions) (string, error)
SymbolicRef returns the reference name (e.g. "refs/heads/master") pointed by the symbolic ref in the repository in given path. It returns an empty string and nil error when doing set operation.
func UnescapeChars ¶
UnescapeChars reverses escaped characters.
func UpdateServerInfo ¶
func UpdateServerInfo(path string, opts ...UpdateServerInfoOptions) error
UpdateServerInfo updates the auxiliary info file on the server side for the repository in given path.
func UploadPack ¶
func UploadPack(path string, opts ...UploadPackOptions) ([]byte, error)
UploadPack sends the packfile to the client for the repository in given path.
Types ¶
type AddOptions ¶
type AddOptions struct { // Indicates whether to add all changes to index. All bool // The specific pathspecs to be added to index. Pathspecs []string // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. // // Deprecated: Use CommandOptions.Timeout instead. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
AddOptions contains optional arguments for adding local changes.
type AddRemoteOptions
deprecated
type AddRemoteOptions = RemoteAddOptions
Deprecated: Use RemoteAddOptions instead.
type ArchiveFormat ¶
type ArchiveFormat string
ArchiveFormat is the format of an archive.
const ( ArchiveZip ArchiveFormat = "zip" ArchiveTarGz ArchiveFormat = "tar.gz" )
A list of formats can be created by Git for an archive.
type Blame ¶
type Blame struct {
// contains filtered or unexported fields
}
Blame contains information of a Git file blame.
type BlameOptions ¶
type BlameOptions struct { // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. // // Deprecated: Use CommandOptions.Timeout instead. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
BlameOptions contains optional arguments for blaming a file. Docs: https://git-scm.com/docs/git-blame
type Blob ¶
type Blob struct {
*TreeEntry
}
Blob is a blob object.
type CatFileBlobOptions ¶
type CatFileBlobOptions struct { // The timeout duration before giving up for each shell command execution. // The default timeout duration will be used when not supplied. // // Deprecated: Use CommandOptions.Timeout instead. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
CatFileBlobOptions contains optional arguments for verifying the objects.
Docs: https://git-scm.com/docs/git-cat-file#Documentation/git-cat-file.txt
type CatFileCommitOptions ¶
type CatFileCommitOptions struct { // The timeout duration before giving up for each shell command execution. // The default timeout duration will be used when not supplied. // // Deprecated: Use CommandOptions.Timeout instead. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
CatFileCommitOptions contains optional arguments for verifying the objects.
Docs: https://git-scm.com/docs/git-cat-file#Documentation/git-cat-file.txt-lttypegt
type CatFileTypeOptions ¶
type CatFileTypeOptions struct { // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
CatFileTypeOptions contains optional arguments for showing the object type.
Docs: https://git-scm.com/docs/git-cat-file#Documentation/git-cat-file.txt--t
type CheckoutOptions ¶
type CheckoutOptions struct { // The base branch if checks out to a new branch. BaseBranch string // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. // // Deprecated: Use CommandOptions.Timeout instead. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
CheckoutOptions contains optional arguments for checking out to a branch.
type CloneOptions ¶
type CloneOptions struct { // Indicates whether the repository should be cloned as a mirror. Mirror bool // Indicates whether the repository should be cloned in bare format. Bare bool // Indicates whether to suppress the log output. Quiet bool // The branch to checkout for the working tree when Bare=false. Branch string // The number of revisions to clone. Depth uint64 // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. // // Deprecated: Use CommandOptions.Timeout instead. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
CloneOptions contains optional arguments for cloning a repository.
type Command ¶
type Command struct {
// contains filtered or unexported fields
}
Command contains the name, arguments and environment variables of a command.
func NewCommand ¶
NewCommand creates and returns a new Command with given arguments for "git".
func NewCommandWithContext ¶
NewCommandWithContext creates and returns a new Command with given arguments and context for "git".
func (*Command) AddCommitter ¶
AddCommitter appends given committer to the command.
func (*Command) AddOptions ¶
func (c *Command) AddOptions(opts ...CommandOptions) *Command
AddOptions adds options to the command. Note: only the last option will take effect if there are duplicated options.
func (*Command) Run ¶
Run executes the command in working directory and default timeout duration. It returns stdout in string and error (combined with stderr).
func (*Command) RunInDir ¶
RunInDir executes the command in given directory and default timeout duration. It returns stdout and error (combined with stderr).
func (*Command) RunInDirPipeline ¶
RunInDirPipeline executes the command in given directory and default timeout duration. It pipes stdout and stderr to supplied io.Writer.
func (*Command) RunInDirPipelineWithTimeout
deprecated
func (c *Command) RunInDirPipelineWithTimeout(timeout time.Duration, stdout, stderr io.Writer, dir string) (err error)
RunInDirPipelineWithTimeout executes the command in given directory and timeout duration. It pipes stdout and stderr to supplied io.Writer. DefaultTimeout will be used if the timeout duration is less than time.Nanosecond (i.e. less than or equal to 0). It returns an ErrExecTimeout if the execution was timed out.
Deprecated: Use RunInDirPipeline and CommandOptions instead. TODO: remove this in the next major version
func (*Command) RunInDirWithOptions ¶
func (c *Command) RunInDirWithOptions(dir string, opts ...RunInDirOptions) (err error)
RunInDirWithOptions executes the command in given directory and options. It pipes stdin from supplied io.Reader, and pipes stdout and stderr to supplied io.Writer. DefaultTimeout will be used if the timeout duration is less than time.Nanosecond (i.e. less than or equal to 0). It returns an ErrExecTimeout if the execution was timed out.
func (*Command) RunInDirWithTimeout
deprecated
RunInDirWithTimeout executes the command in given directory and timeout duration. It returns stdout in []byte and error (combined with stderr).
Deprecated: Use RunInDir and CommandOptions instead. TODO: remove this in the next major version
func (*Command) RunWithTimeout
deprecated
RunWithTimeout executes the command in working directory and given timeout duration. It returns stdout in string and error (combined with stderr).
Deprecated: Use RunInDir and CommandOptions instead. TODO: remove this in the next major version
func (*Command) SetTimeout ¶
SetTimeout sets the timeout for the command.
func (Command) WithContext ¶
WithContext returns a new Command with the given context.
type CommandOptions ¶
type CommandOptions struct { Args []string Envs []string Timeout time.Duration Context context.Context }
CommandOptions contains options for running a command. If timeout is zero, DefaultTimeout will be used. If timeout is less than zero, no timeout will be set. If context is nil, context.Background() will be used.
type Commit ¶
type Commit struct { // The SHA-1 hash of the commit. ID *SHA1 // The author of the commit. Author *Signature // The committer of the commit. Committer *Signature // The full commit message. Message string *Tree // contains filtered or unexported fields }
Commit contains information of a Git commit.
func Log ¶
func Log(repoPath, rev string, opts ...LogOptions) ([]*Commit, error)
Log returns a list of commits in the state of given revision of the repository in given path. The returned list is in reverse chronological order.
func RepoLog
deprecated
func RepoLog(repoPath, rev string, opts ...LogOptions) ([]*Commit, error)
Deprecated: Use Log instead.
func (*Commit) Ancestors ¶
func (c *Commit) Ancestors(opts ...LogOptions) ([]*Commit, error)
Ancestors returns a list of ancestors of this commit in reverse chronological order.
func (*Commit) CommitByPath ¶
func (c *Commit) CommitByPath(opts ...CommitByRevisionOptions) (*Commit, error)
CommitByPath returns the commit of the path in the state of this commit.
func (*Commit) CommitsAfter ¶
func (c *Commit) CommitsAfter(after string, opts ...RevListOptions) ([]*Commit, error)
CommitsAfter returns a list of commits after given commit ID up to this commit. The returned list is in reverse chronological order.
func (*Commit) CommitsByPage ¶
func (c *Commit) CommitsByPage(page, size int, opts ...CommitsByPageOptions) ([]*Commit, error)
CommitsByPage returns a paginated list of commits in the state of this commit. The returned list is in reverse chronological order.
func (*Commit) CommitsCount ¶
func (c *Commit) CommitsCount(opts ...RevListCountOptions) (int64, error)
CommitsCount returns number of total commits up to this commit.
func (*Commit) CreateArchive ¶
func (c *Commit) CreateArchive(format ArchiveFormat, dst string) error
CreateArchive creates given format of archive to the destination.
func (*Commit) FilesChangedAfter ¶
func (c *Commit) FilesChangedAfter(after string, opts ...DiffNameOnlyOptions) ([]string, error)
FilesChangedAfter returns a list of files changed after given commit ID.
func (*Commit) IsImageFile ¶
IsImageFile returns true if the blob of the commit is an image by subpath.
func (*Commit) IsImageFileByIndex ¶
IsImageFileByIndex returns true if the blob of the commit is an image by index.
func (*Commit) Parent ¶
func (c *Commit) Parent(n int, opts ...CatFileCommitOptions) (*Commit, error)
Parent returns the n-th parent commit (0-based) of this commit. It returns ErrRevisionNotExist if no such parent exists.
func (*Commit) ParentID ¶
ParentID returns the SHA-1 hash of the n-th parent (0-based) of this commit. It returns an ErrParentNotExist if no such parent exists.
func (*Commit) ParentsCount ¶
ParentsCount returns number of parents of the commit. It returns 0 if this is the root commit, otherwise returns 1, 2, etc.
func (*Commit) SearchCommits ¶
func (c *Commit) SearchCommits(pattern string, opts ...SearchCommitsOptions) ([]*Commit, error)
SearchCommits searches commit message with given pattern. The returned list is in reverse chronological order.
func (*Commit) ShowNameStatus ¶
func (c *Commit) ShowNameStatus(opts ...ShowNameStatusOptions) (*NameStatus, error)
ShowNameStatus returns name status of the commit.
func (*Commit) Submodule ¶
Submodule returns submodule by given name. It returns an ErrSubmoduleNotExist if the path does not exist as a submodule.
func (*Commit) Submodules ¶
func (c *Commit) Submodules() (Submodules, error)
Submodules returns submodules found in this commit.
type CommitByRevisionOptions ¶
type CommitByRevisionOptions struct { // The relative path of the repository. Path string // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
CommitByRevisionOptions contains optional arguments for getting a commit.
type CommitOptions ¶
type CommitOptions struct { // Author is the author of the changes if that's not the same as committer. Author *Signature // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. // // Deprecated: Use CommandOptions.Timeout instead. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
CommitOptions contains optional arguments to commit changes.
type CommitsByPageOptions ¶
type CommitsByPageOptions struct { // The relative path of the repository. Path string // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
CommitsByPageOptions contains optional arguments for getting paginated commits.
type CommitsInfoOptions ¶
type CommitsInfoOptions struct { // The relative path of the repository. Path string // The maximum number of goroutines to be used for getting commits information. // When not set (i.e. <=0), runtime.GOMAXPROCS is used to determine the value. MaxConcurrency int // The timeout duration before giving up for each shell command execution. // The default timeout duration will be used when not supplied. Timeout time.Duration }
CommitsInfoOptions contains optional arguments for getting commits information.
type CommitsSinceOptions ¶
type CommitsSinceOptions struct { // The relative path of the repository. Path string // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
CommitsSinceOptions contains optional arguments for listing commits since a time.
type CountObject ¶
type CountObject struct { Count int64 Size int64 InPack int64 Packs int64 SizePack int64 PrunePackable int64 Garbage int64 SizeGarbage int64 }
CountObject contains disk usage report of a repository.
func CountObjects ¶
func CountObjects(repoPath string, opts ...CountObjectsOptions) (*CountObject, error)
CountObjects returns disk usage report of the repository in given path.
func RepoCountObjects
deprecated
func RepoCountObjects(repoPath string, opts ...CountObjectsOptions) (*CountObject, error)
Deprecated: Use CountObjects instead.
type CountObjectsOptions ¶
type CountObjectsOptions struct { // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. // // Deprecated: Use CommandOptions.Timeout instead. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
CountObjectsOptions contains optional arguments for counting objects.
type CreateTagOptions ¶
type CreateTagOptions struct { // Annotated marks a tag as annotated rather than lightweight. Annotated bool // Message specifies a tagging message for the annotated tag. It is ignored when tag is not annotated. Message string // Author is the author of the tag. It is ignored when tag is not annotated. Author *Signature // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. // // Deprecated: Use CommandOptions.Timeout instead. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
CreateTagOptions contains optional arguments for creating a tag.
type DeleteBranchOptions ¶
type DeleteBranchOptions struct { // Indicates whether to force delete the branch. Force bool // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. // // Deprecated: Use CommandOptions.Timeout instead. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
DeleteBranchOptions contains optional arguments for deleting a branch.
type DeleteTagOptions ¶
type DeleteTagOptions struct { // The timeout duration before giving up for each shell command execution. // The default timeout duration will be used when not supplied. // // Deprecated: Use CommandOptions.Timeout instead. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
DeleteTagOptions contains optional arguments for deleting a tag.
Docs: https://git-scm.com/docs/git-tag#Documentation/git-tag.txt---delete
type Diff ¶
type Diff struct { Files []*DiffFile // The files in the diff // contains filtered or unexported fields }
Diff represents a Git diff.
func (*Diff) IsIncomplete ¶
IsIncomplete returns true if the file is incomplete to the entire diff.
func (*Diff) TotalAdditions ¶
TotalAdditions returns the total additions in the diff.
func (*Diff) TotalDeletions ¶
TotalDeletions returns the total deletions in the diff.
type DiffBinaryOptions ¶
type DiffBinaryOptions struct { // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
DiffBinaryOptions contains optional arguments for producing binary patch.
type DiffFile ¶
type DiffFile struct { // The name of the file. Name string // The type of the file. Type DiffFileType // The index (SHA1 hash) of the file. For a changed/new file, it is the new SHA, // and for a deleted file it becomes "000000". Index string // OldIndex is the old index (SHA1 hash) of the file. OldIndex string // The sections in the file. Sections []*DiffSection // contains filtered or unexported fields }
DiffFile represents a file in diff.
func (*DiffFile) IsIncomplete ¶
IsIncomplete returns true if the file is incomplete to the file diff.
func (*DiffFile) IsSubmodule ¶
IsSubmodule returns true if the file contains information of a submodule.
func (*DiffFile) NumAdditions ¶
NumAdditions returns the number of additions in the file.
func (*DiffFile) NumDeletions ¶
NumDeletions returns the number of deletions in the file.
func (*DiffFile) NumSections ¶
NumSections returns the number of sections in the file.
type DiffFileType ¶
type DiffFileType uint8
DiffFileType is the file status in diff.
const ( DiffFileAdd DiffFileType = iota + 1 DiffFileChange DiffFileDelete DiffFileRename )
A list of different file statuses.
type DiffLine ¶
type DiffLine struct { Type DiffLineType // The type of the line Content string // The content of the line LeftLine int // The left line number RightLine int // The right line number }
DiffLine represents a line in diff.
type DiffLineType ¶
type DiffLineType uint8
DiffLineType is the line type in diff.
const ( DiffLinePlain DiffLineType = iota + 1 DiffLineAdd DiffLineDelete DiffLineSection )
A list of different line types.
type DiffNameOnlyOptions ¶
type DiffNameOnlyOptions struct { // Indicates whether two commits should have a merge base. NeedsMergeBase bool // The relative path of the repository. Path string // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
DiffNameOnlyOptions contains optional arguments for listing changed files.
Docs: https://git-scm.com/docs/git-diff#Documentation/git-diff.txt---name-only
type DiffOptions ¶
type DiffOptions struct { // The commit ID to used for computing diff between a range of commits (base, // revision]. When not set, only computes diff for a single commit at revision. Base string // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. // // Deprecated: Use CommandOptions.Timeout instead. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
DiffOptions contains optional arguments for parsing diff.
Docs: https://git-scm.com/docs/git-diff#Documentation/git-diff.txt---full-index
type DiffSection ¶
type DiffSection struct { Lines []*DiffLine // lines in the section // contains filtered or unexported fields }
DiffSection represents a section in diff.
func (*DiffSection) Line ¶
func (s *DiffSection) Line(typ DiffLineType, line int) *DiffLine
Line returns a specific line by given type and line number in a section.
func (*DiffSection) NumLines ¶
func (s *DiffSection) NumLines() int
NumLines returns the number of lines in the section.
type Entries ¶
type Entries []*TreeEntry
Entries is a sortable list of tree entries.
func (Entries) CommitsInfo ¶
func (es Entries) CommitsInfo(commit *Commit, opts ...CommitsInfoOptions) ([]*EntryCommitInfo, error)
CommitsInfo returns a list of commit information for these tree entries in the state of given commit and subpath. It takes advantages of concurrency to speed up the process. The returned list has the same number of items as tree entries, so the caller can access them via slice indices.
type EntryCommitInfo ¶
EntryCommitInfo contains a tree entry with its commit information.
type FetchOptions ¶
type FetchOptions struct { // Indicates whether to prune during fetching. Prune bool // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. // // Deprecated: Use CommandOptions.Timeout instead. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
FetchOptions contains optional arguments for fetching repository updates.
type FsckOptions ¶
type FsckOptions struct { // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. // // Deprecated: Use CommandOptions.Timeout instead. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
FsckOptions contains optional arguments for verifying the objects.
type GrepOptions ¶
type GrepOptions struct { // The tree to run the search. Defaults to "HEAD". Tree string // Limits the search to files in the specified pathspec. Pathspec string // Whether to do case insensitive search. IgnoreCase bool // Whether to match the pattern only at word boundaries. WordRegexp bool // Whether use extended regular expressions. ExtendedRegexp bool // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. // // Deprecated: Use CommandOptions.Timeout instead. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
GrepOptions contains optional arguments for grep search over repository files.
type GrepResult ¶
type GrepResult struct { // The tree of the file that matched, e.g. "HEAD". Tree string // The path of the file that matched. Path string // The line number of the match. Line int // The 1-indexed column number of the match. Column int // The text of the line that matched. Text string }
GrepResult represents a single result from a grep search.
type Hook ¶
type Hook struct {
// contains filtered or unexported fields
}
Hook contains information of a Git hook.
type InitOptions ¶
type InitOptions struct { // Indicates whether the repository should be initialized in bare format. Bare bool // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. // // Deprecated: Use CommandOptions.Timeout instead. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
InitOptions contains optional arguments for initializing a repository.
type LatestCommitTimeOptions ¶
type LatestCommitTimeOptions struct { // To get the latest commit time of the branch. When not set, it checks all branches. Branch string // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
LatestCommitTimeOptions contains optional arguments for getting the latest commit time.
type LogOptions ¶
type LogOptions struct { // The maximum number of commits to output. MaxCount int // The number commits skipped before starting to show the commit output. Skip int // To only show commits since the time. Since time.Time // The regular expression to filter commits by their messages. GrepPattern string // Indicates whether to ignore letter case when match the regular expression. RegexpIgnoreCase bool // The relative path of the repository. Path string // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
LogOptions contains optional arguments for listing commits.
type LsRemoteOptions ¶
type LsRemoteOptions struct { // Indicates whether include heads. Heads bool // Indicates whether include tags. Tags bool // Indicates whether to not show peeled tags or pseudo refs. Refs bool // The list of patterns to filter results. Patterns []string // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. // // Deprecated: Use CommandOptions.Timeout instead. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
LsRemoteOptions contains arguments for listing references in a remote repository.
type LsTreeOptions ¶
type LsTreeOptions struct { // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. // // Deprecated: Use CommandOptions.Timeout instead. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
LsTreeOptions contains optional arguments for listing trees.
type MergeBaseOptions ¶
type MergeBaseOptions struct { // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. // // Deprecated: Use CommandOptions.Timeout instead. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
MergeBaseOptions contains optional arguments for getting merge base.
type MoveOptions ¶
type MoveOptions struct { // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. // // Deprecated: Use CommandOptions.Timeout instead. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
MoveOptions contains optional arguments for moving a file, a directory, or a symlink.
type NameStatus ¶
NameStatus contains name status of a commit.
func RepoShowNameStatus
deprecated
func RepoShowNameStatus(repoPath, rev string, opts ...ShowNameStatusOptions) (*NameStatus, error)
Deprecated: Use ShowNameStatus instead.
func ShowNameStatus ¶
func ShowNameStatus(repoPath, rev string, opts ...ShowNameStatusOptions) (*NameStatus, error)
ShowNameStatus returns name status of given revision of the repository in given path.
type ObjectType ¶
type ObjectType string
ObjectType is the type of a Git objet.
const ( ObjectCommit ObjectType = "commit" ObjectTree ObjectType = "tree" ObjectBlob ObjectType = "blob" ObjectTag ObjectType = "tag" )
A list of object types.
type PullOptions ¶
type PullOptions struct { // Indicates whether to rebased during pulling. Rebase bool // Indicates whether to pull from all remotes. All bool // The remote to pull updates from when All=false. Remote string // The branch to pull updates from when All=false and Remote is supplied. Branch string // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. // // Deprecated: Use CommandOptions.Timeout instead. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
PullOptions contains optional arguments for pulling repository updates.
type PushOptions ¶
type PushOptions struct { // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. // // Deprecated: Use CommandOptions.Timeout instead. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
PushOptions contains optional arguments for pushing repository changes.
type RawDiffFormat ¶
type RawDiffFormat string
RawDiffFormat is the format of a raw diff.
const ( RawDiffNormal RawDiffFormat = "diff" RawDiffPatch RawDiffFormat = "patch" )
type RawDiffOptions ¶
type RawDiffOptions struct { // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
RawDiffOptions contains optional arguments for dumping a raw diff.
type ReceivePackOptions ¶
type ReceivePackOptions struct { // Indicates whether to suppress the log output. Quiet bool // Indicates whether to generate the "info/refs" used by the "git http-backend". HTTPBackendInfoRefs bool // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
ReceivePackOptions contains optional arguments for receiving the info pushed to the repository.
type RemoteAddOptions ¶
type RemoteAddOptions struct { // Indicates whether to execute git fetch after the remote information is set // up. Fetch bool // Indicates whether to add remote as mirror with --mirror=fetch. MirrorFetch bool // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. // // Deprecated: Use CommandOptions.Timeout instead. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
RemoteAddOptions contains options to add a remote address.
Docs: https://git-scm.com/docs/git-remote#Documentation/git-remote.txt-emaddem
type RemoteGetURLOptions ¶
type RemoteGetURLOptions struct { // Indicates whether to get push URLs instead of fetch URLs. Push bool // Indicates whether to get all URLs, including lists that are not part of main // URLs. This option is independent of the Push option. All bool // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. // // Deprecated: Use CommandOptions.Timeout instead. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
RemoteGetURLOptions contains arguments for retrieving URL(s) of a remote of the repository.
Docs: https://git-scm.com/docs/git-remote#Documentation/git-remote.txt-emget-urlem
type RemoteRemoveOptions ¶
type RemoteRemoveOptions struct { // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. // // Deprecated: Use CommandOptions.Timeout instead. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
RemoteRemoveOptions contains arguments for removing a remote from the repository.
Docs: https://git-scm.com/docs/git-remote#Documentation/git-remote.txt-emremoveem
type RemoteSetURLAddOptions ¶
type RemoteSetURLAddOptions struct { // Indicates whether to get push URLs instead of fetch URLs. Push bool // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. // // Deprecated: Use CommandOptions.Timeout instead. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
RemoteSetURLAddOptions contains arguments for appending an URL to a remote of the repository.
Docs: https://git-scm.com/docs/git-remote#Documentation/git-remote.txt-emset-urlem
type RemoteSetURLDeleteOptions ¶
type RemoteSetURLDeleteOptions struct { // Indicates whether to get push URLs instead of fetch URLs. Push bool // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. // // Deprecated: Use CommandOptions.Timeout instead. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
RemoteSetURLDeleteOptions contains arguments for deleting an URL of a remote of the repository.
Docs: https://git-scm.com/docs/git-remote#Documentation/git-remote.txt-emset-urlem
type RemoteSetURLOptions ¶
type RemoteSetURLOptions struct { // Indicates whether to get push URLs instead of fetch URLs. Push bool // The regex to match existing URLs to replace (instead of first). Regex string // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. // // Deprecated: Use CommandOptions.Timeout instead. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
RemoteSetURLOptions contains arguments for setting an URL of a remote of the repository.
Docs: https://git-scm.com/docs/git-remote#Documentation/git-remote.txt-emset-urlem
type RemotesOptions ¶
type RemotesOptions struct { // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. // // Deprecated: Use CommandOptions.Timeout instead. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
RemotesOptions contains arguments for listing remotes of the repository. / Docs: https://git-scm.com/docs/git-remote#_commands
type RemoveRemoteOptions
deprecated
type RemoveRemoteOptions = RemoteRemoveOptions
Deprecated: Use RemoteRemoveOptions instead.
type Repository ¶
type Repository struct {
// contains filtered or unexported fields
}
Repository contains information of a Git repository.
func Open ¶
func Open(repoPath string) (*Repository, error)
Open opens the repository at the given path. It returns an os.ErrNotExist if the path does not exist.
func (*Repository) Add ¶
func (r *Repository) Add(opts ...AddOptions) error
Add adds local changes to index for the repository.
func (*Repository) AddRemote
deprecated
func (r *Repository) AddRemote(name, url string, opts ...RemoteAddOptions) error
Deprecated: Use RemoteAdd instead.
func (*Repository) BlameFile ¶
func (r *Repository) BlameFile(rev, file string, opts ...BlameOptions) (*Blame, error)
BlameFile returns blame results of the file with the given revision of the repository.
func (*Repository) BranchCommit ¶
func (r *Repository) BranchCommit(branch string, opts ...CatFileCommitOptions) (*Commit, error)
BranchCommit returns the latest commit of given branch of the repository. The branch must be given in short name e.g. "master".
func (*Repository) BranchCommitID ¶
func (r *Repository) BranchCommitID(branch string, opts ...ShowRefVerifyOptions) (string, error)
BranchCommitID returns the commit ID of given branch if it exists in the repository. The branch must be given in short name e.g. "master".
func (*Repository) Branches ¶
func (r *Repository) Branches() ([]string, error)
Branches returns a list of all branches in the repository.
func (*Repository) CatFileBlob ¶
func (r *Repository) CatFileBlob(rev string, opts ...CatFileBlobOptions) (*Blob, error)
CatFileBlob returns the blob corresponding to the given revision of the repository.
func (*Repository) CatFileCommit ¶
func (r *Repository) CatFileCommit(rev string, opts ...CatFileCommitOptions) (*Commit, error)
CatFileCommit returns the commit corresponding to the given revision of the repository. The revision could be a commit ID or full refspec (e.g. "refs/heads/master").
func (*Repository) CatFileType ¶
func (r *Repository) CatFileType(rev string, opts ...CatFileTypeOptions) (ObjectType, error)
CatFileType returns the object type of given revision of the repository.
func (*Repository) Checkout ¶
func (r *Repository) Checkout(branch string, opts ...CheckoutOptions) error
Checkout checks out to given branch for the repository.
func (*Repository) Commit ¶
func (r *Repository) Commit(committer *Signature, message string, opts ...CommitOptions) error
Commit commits local changes with given author, committer and message for the repository.
func (*Repository) CommitByRevision ¶
func (r *Repository) CommitByRevision(rev string, opts ...CommitByRevisionOptions) (*Commit, error)
CommitByRevision returns a commit by given revision.
func (*Repository) CommitsByPage ¶
func (r *Repository) CommitsByPage(rev string, page, size int, opts ...CommitsByPageOptions) ([]*Commit, error)
CommitsByPage returns a paginated list of commits in the state of given revision. The pagination starts from the newest to the oldest commit.
func (*Repository) CommitsSince ¶
func (r *Repository) CommitsSince(rev string, since time.Time, opts ...CommitsSinceOptions) ([]*Commit, error)
CommitsSince returns a list of commits since given time. The returned list is in reverse chronological order.
func (*Repository) CountObjects ¶
func (r *Repository) CountObjects(opts ...CountObjectsOptions) (*CountObject, error)
CountObjects returns disk usage report of the repository.
func (*Repository) CreateTag ¶
func (r *Repository) CreateTag(name, rev string, opts ...CreateTagOptions) error
CreateTag creates a new tag on given revision.
func (*Repository) DeleteBranch ¶
func (r *Repository) DeleteBranch(name string, opts ...DeleteBranchOptions) error
DeleteBranch deletes the branch from the repository.
func (*Repository) DeleteTag ¶
func (r *Repository) DeleteTag(name string, opts ...DeleteTagOptions) error
DeleteTag deletes a tag from the repository.
func (*Repository) Diff ¶
func (r *Repository) Diff(rev string, maxFiles, maxFileLines, maxLineChars int, opts ...DiffOptions) (*Diff, error)
Diff returns a parsed diff object between given commits of the repository.
func (*Repository) DiffBinary ¶
func (r *Repository) DiffBinary(base, head string, opts ...DiffBinaryOptions) ([]byte, error)
DiffBinary returns binary patch between base and head revisions that could be used for git-apply.
func (*Repository) DiffNameOnly ¶
func (r *Repository) DiffNameOnly(base, head string, opts ...DiffNameOnlyOptions) ([]string, error)
DiffNameOnly returns a list of changed files between base and head revisions of the repository.
func (*Repository) Fetch ¶
func (r *Repository) Fetch(opts ...FetchOptions) error
Fetch fetches updates for the repository.
func (*Repository) Fsck ¶
func (r *Repository) Fsck(opts ...FsckOptions) error
Fsck verifies the connectivity and validity of the objects in the database for the repository.
func (*Repository) Grep ¶
func (r *Repository) Grep(pattern string, opts ...GrepOptions) []*GrepResult
Grep returns the results of a grep search in the repository.
func (*Repository) HasBranch ¶
func (r *Repository) HasBranch(branch string, opts ...ShowRefVerifyOptions) bool
HasBranch returns true if given branch exists in the repository. The branch must be given in short name e.g. "master".
func (*Repository) HasReference ¶
func (r *Repository) HasReference(ref string, opts ...ShowRefVerifyOptions) bool
HasReference returns true if given reference exists in the repository. The reference must be given in full refspec, e.g. "refs/heads/master".
func (*Repository) HasTag ¶
func (r *Repository) HasTag(tag string, opts ...ShowRefVerifyOptions) bool
HasTag returns true if given tag exists in the repository. The tag must be given in short name e.g. "v1.0.0".
func (*Repository) Hook ¶
func (r *Repository) Hook(dir string, name HookName) (*Hook, error)
Hook returns a Git hook by given name in the repository. Giving empty directory will use the default directory. It returns an os.ErrNotExist if both active and sample hook do not exist.
func (*Repository) Hooks ¶
func (r *Repository) Hooks(dir string) ([]*Hook, error)
Hooks returns a list of Git hooks found in the repository. Giving empty directory will use the default directory. It may return an empty slice when no hooks found.
func (*Repository) LatestCommitTime ¶
func (r *Repository) LatestCommitTime(opts ...LatestCommitTimeOptions) (time.Time, error)
LatestCommitTime returns the time of latest commit of the repository.
func (*Repository) Log ¶
func (r *Repository) Log(rev string, opts ...LogOptions) ([]*Commit, error)
Log returns a list of commits in the state of given revision of the repository. The returned list is in reverse chronological order.
func (*Repository) LsTree ¶
func (r *Repository) LsTree(treeID string, opts ...LsTreeOptions) (*Tree, error)
LsTree returns the tree object in the repository by given tree ID.
func (*Repository) MergeBase ¶
func (r *Repository) MergeBase(base, head string, opts ...MergeBaseOptions) (string, error)
MergeBase returns merge base between base and head revisions of the repository.
func (*Repository) Move ¶
func (r *Repository) Move(src, dst string, opts ...MoveOptions) error
Move moves a file, a directory, or a symlink file or directory from source to destination for the repository.
func (*Repository) NewHook ¶
func (r *Repository) NewHook(dir string, name HookName) *Hook
NewHook creates and returns a new hook with given name. Update method must be called to actually save the hook to disk.
func (*Repository) Path ¶
func (r *Repository) Path() string
Path returns the path of the repository.
func (*Repository) Pull ¶
func (r *Repository) Pull(opts ...PullOptions) error
Pull pulls updates for the repository.
func (*Repository) Push ¶
func (r *Repository) Push(remote, branch string, opts ...PushOptions) error
Push pushes local changes to given remote and branch for the repository.
func (*Repository) RawDiff ¶
func (r *Repository) RawDiff(rev string, diffType RawDiffFormat, w io.Writer, opts ...RawDiffOptions) error
RawDiff dumps diff of repository in given revision directly to given io.Writer.
func (*Repository) RemoteAdd ¶
func (r *Repository) RemoteAdd(name, url string, opts ...RemoteAddOptions) error
RemoteAdd adds a new remote to the repository.
func (*Repository) RemoteGetURL ¶
func (r *Repository) RemoteGetURL(name string, opts ...RemoteGetURLOptions) ([]string, error)
RemoteGetURL retrieves URL(s) of a remote of the repository in given path.
func (*Repository) RemoteRemove ¶
func (r *Repository) RemoteRemove(name string, opts ...RemoteRemoveOptions) error
RemoteRemove removes a remote from the repository.
func (*Repository) RemoteSetURL ¶
func (r *Repository) RemoteSetURL(name, newurl string, opts ...RemoteSetURLOptions) error
RemoteSetURL sets the first URL of the remote with given name of the repository.
func (*Repository) RemoteSetURLAdd ¶
func (r *Repository) RemoteSetURLAdd(name, newurl string, opts ...RemoteSetURLAddOptions) error
RemoteSetURLAdd appends an URL to the remote with given name of the repository. Use RemoteSetURL to overwrite the URL(s) instead.
func (*Repository) RemoteSetURLDelete ¶
func (r *Repository) RemoteSetURLDelete(name, regex string, opts ...RemoteSetURLDeleteOptions) error
RemoteSetURLDelete deletes all URLs matching regex of the remote with given name of the repository.
func (*Repository) Remotes ¶
func (r *Repository) Remotes(opts ...RemotesOptions) ([]string, error)
Remotes lists remotes of the repository.
func (*Repository) RemoveRemote
deprecated
func (r *Repository) RemoveRemote(name string, opts ...RemoteRemoveOptions) error
Deprecated: Use RemoteRemove instead.
func (*Repository) Reset ¶
func (r *Repository) Reset(rev string, opts ...ResetOptions) error
Reset resets working tree to given revision for the repository.
func (*Repository) RevList ¶
func (r *Repository) RevList(refspecs []string, opts ...RevListOptions) ([]*Commit, error)
RevList returns a list of commits based on given refspecs in reverse chronological order.
func (*Repository) RevListCount ¶
func (r *Repository) RevListCount(refspecs []string, opts ...RevListCountOptions) (int64, error)
RevListCount returns number of total commits up to given refspec of the repository.
func (*Repository) RevParse ¶
func (r *Repository) RevParse(rev string, opts ...RevParseOptions) (string, error)
RevParse returns full length (40) commit ID by given revision in the repository.
func (*Repository) SearchCommits ¶
func (r *Repository) SearchCommits(rev, pattern string, opts ...SearchCommitsOptions) ([]*Commit, error)
SearchCommits searches commit message with given pattern in the state of given revision. The returned list is in reverse chronological order.
func (*Repository) ShowNameStatus ¶
func (r *Repository) ShowNameStatus(rev string, opts ...ShowNameStatusOptions) (*NameStatus, error)
ShowNameStatus returns name status of given revision of the repository.
func (*Repository) ShowRef ¶
func (r *Repository) ShowRef(opts ...ShowRefOptions) ([]*Reference, error)
ShowRef returns a list of references in the repository.
func (*Repository) ShowRefVerify ¶
func (r *Repository) ShowRefVerify(ref string, opts ...ShowRefVerifyOptions) (string, error)
ShowRefVerify returns the commit ID of given reference (e.g. "refs/heads/master") if it exists in the repository.
func (*Repository) StashDiff ¶
func (r *Repository) StashDiff(index int, maxFiles, maxFileLines, maxLineChars int, opts ...DiffOptions) (*Diff, error)
StashDiff returns a parsed diff object for the given stash index. This must be run in a work tree.
func (*Repository) StashList ¶
func (r *Repository) StashList(opts ...StashListOptions) ([]*Stash, error)
StashList returns a list of stashes in the repository. This must be run in a work tree.
func (*Repository) StashPush ¶
func (r *Repository) StashPush(msg string, opts ...StashPushOptions) error
StashPush pushes the current worktree to the stash. This must be run in a work tree.
func (*Repository) SymbolicRef ¶
func (r *Repository) SymbolicRef(opts ...SymbolicRefOptions) (string, error)
SymbolicRef returns the reference name (e.g. "refs/heads/master") pointed by the symbolic ref. It returns an empty string and nil error when doing set operation.
func (*Repository) Tag ¶
func (r *Repository) Tag(name string, opts ...TagOptions) (*Tag, error)
Tag returns a Git tag by given name, e.g. "v1.0.0".
func (*Repository) TagCommit ¶
func (r *Repository) TagCommit(tag string, opts ...CatFileCommitOptions) (*Commit, error)
TagCommit returns the latest commit of given tag of the repository. The tag must be given in short name e.g. "v1.0.0".
func (*Repository) TagCommitID ¶
func (r *Repository) TagCommitID(tag string, opts ...ShowRefVerifyOptions) (string, error)
TagCommitID returns the commit ID of given tag if it exists in the repository. The tag must be given in short name e.g. "v1.0.0".
func (*Repository) Tags ¶
func (r *Repository) Tags(opts ...TagsOptions) ([]string, error)
Tags returns a list of tags of the repository.
type ResetOptions ¶
type ResetOptions struct { // Indicates whether to perform a hard reset. Hard bool // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. // // Deprecated: Use CommandOptions.Timeout instead. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
ResetOptions contains optional arguments for resetting a branch.
type RevListCountOptions ¶
type RevListCountOptions struct { // The relative path of the repository. Path string // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
RevListCountOptions contains optional arguments for counting commits.
Docs: https://git-scm.com/docs/git-rev-list#Documentation/git-rev-list.txt---count
type RevListOptions ¶
type RevListOptions struct { // The relative path of the repository. Path string // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
RevListOptions contains optional arguments for listing commits.
type RevParseOptions ¶
type RevParseOptions struct { // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. // // Deprecated: Use CommandOptions.Timeout instead. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
RevParseOptions contains optional arguments for parsing revision.
type RunInDirOptions ¶
type RunInDirOptions struct { // Stdin is the input to the command. Stdin io.Reader // Stdout is the outputs from the command. Stdout io.Writer // Stderr is the error output from the command. Stderr io.Writer // Timeout is the duration to wait before timing out. // // Deprecated: Use CommandOptions.Timeout or *Command.WithTimeout instead. Timeout time.Duration }
RunInDirOptions contains options for running a command in a directory.
type SHA1 ¶
type SHA1 struct {
// contains filtered or unexported fields
}
SHA1 is the SHA-1 hash of a Git object.
func MustIDFromString ¶
MustIDFromString always returns a new sha from a ID with no validation of input.
func NewIDFromString ¶
NewIDFromString returns a new SHA1 from a ID string of length 40.
type SearchCommitsOptions ¶
type SearchCommitsOptions struct { // The maximum number of commits to output. MaxCount int // The relative path of the repository. Path string // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
SearchCommitsOptions contains optional arguments for searching commits.
type ShowNameStatusOptions ¶
type ShowNameStatusOptions struct { // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. // // Deprecated: Use CommandOptions.Timeout instead. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
ShowNameStatusOptions contains optional arguments for showing name status.
Docs: https://git-scm.com/docs/git-show#Documentation/git-show.txt---name-status
type ShowRefOptions ¶
type ShowRefOptions struct { // Indicates whether to include heads. Heads bool // Indicates whether to include tags. Tags bool // The list of patterns to filter results. Patterns []string // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. // // Deprecated: Use CommandOptions.Timeout instead. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
ShowRefOptions contains optional arguments for listing references.
type ShowRefVerifyOptions ¶
type ShowRefVerifyOptions struct { // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. // // Deprecated: Use CommandOptions.Timeout instead. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
ShowRefVerifyOptions contains optional arguments for verifying a reference.
Docs: https://git-scm.com/docs/git-show-ref#Documentation/git-show-ref.txt---verify
type Signature ¶
type Signature struct { // The name of the person. Name string // The email address. Email string // The time of the signature. When time.Time }
Signature represents a author or committer.
type Stash ¶
type Stash struct { // Index is the index of the stash. Index int // Message is the message of the stash. Message string // Files is the list of files in the stash. Files []string }
Stash represents a stash in the repository.
type StashListOptions ¶
type StashListOptions struct { // CommandOptions describes the options for the command. CommandOptions }
StashListOptions describes the options for the StashList function.
type StashPushOptions ¶
type StashPushOptions struct { // CommandOptions describes the options for the command. CommandOptions }
StashPushOptions describes the options for the StashPush function.
type SteamParseDiffResult ¶
SteamParseDiffResult contains results of streaming parsing a diff.
type Submodule ¶
type Submodule struct { // The name of the submodule. Name string // The URL of the submodule. URL string // The commit ID of the subproject. Commit string }
Submodule contains information of a Git submodule.
type SymbolicRefOptions ¶
type SymbolicRefOptions struct { // The name of the symbolic ref. When not set, default ref "HEAD" is used. Name string // The name of the reference, e.g. "refs/heads/master". When set, it will be // used to update the symbolic ref. Ref string // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. // // Deprecated: Use CommandOptions.Timeout instead. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
SymbolicRefOptions contains optional arguments for get and set symbolic ref.
type Tag ¶
type Tag struct {
// contains filtered or unexported fields
}
Tag contains information of a Git tag.
type TagOptions ¶
type TagOptions struct { // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. // // Deprecated: Use CommandOptions.Timeout instead. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
TagOptions contains optional arguments for getting a tag.
type TagsOptions ¶
type TagsOptions struct { // SortKet sorts tags with provided tag key, optionally prefixed with '-' to sort tags in descending order. SortKey string // Pattern filters tags matching the specified pattern. Pattern string // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. // // Deprecated: Use CommandOptions.Timeout instead. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
TagsOptions contains optional arguments for listing tags.
Docs: https://git-scm.com/docs/git-tag#Documentation/git-tag.txt---list
type Tree ¶
type Tree struct {
// contains filtered or unexported fields
}
Tree represents a flat directory listing in Git.
func (*Tree) Blob ¶
func (t *Tree) Blob(subpath string, opts ...LsTreeOptions) (*Blob, error)
Blob returns the blob object by given subpath of the tree.
func (*Tree) BlobByIndex ¶
BlobByIndex returns blob object by given index.
func (*Tree) Entries ¶
func (t *Tree) Entries(opts ...LsTreeOptions) (Entries, error)
Entries returns all entries of the tree.
type TreeEntry ¶
type TreeEntry struct {
// contains filtered or unexported fields
}
func (*TreeEntry) IsTree ¶
IsTree returns tree if the entry itself is another tree (i.e. a directory).
func (*TreeEntry) Type ¶
func (e *TreeEntry) Type() ObjectType
Type returns the object type of the entry.
type UpdateServerInfoOptions ¶
type UpdateServerInfoOptions struct { // Indicates whether to overwrite the existing server info. Force bool // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
UpdateServerInfoOptions contains optional arguments for updating auxiliary info file on the server side.
type UploadPackOptions ¶
type UploadPackOptions struct { // Indicates whether to quit after a single request/response exchange. StatelessRPC bool // Indicates whether to not try "<directory>/.git/" if "<directory>" is not a // Git directory. Strict bool // Indicates whether to generate the "info/refs" used by the "git http-backend". HTTPBackendInfoRefs bool // The timeout duration before giving up for each shell command execution. The // default timeout duration will be used when not supplied. Timeout time.Duration // The additional options to be passed to the underlying git. CommandOptions }
UploadPackOptions contains optional arguments for sending the packfile to the client.
Source Files
¶
- blame.go
- blob.go
- command.go
- commit.go
- commit_archive.go
- commit_submodule.go
- diff.go
- error.go
- git.go
- hook.go
- object.go
- repo.go
- repo_blame.go
- repo_blob.go
- repo_commit.go
- repo_diff.go
- repo_grep.go
- repo_hook.go
- repo_pull.go
- repo_reference.go
- repo_remote.go
- repo_stash.go
- repo_tag.go
- repo_tree.go
- server.go
- sha1.go
- signature.go
- tag.go
- tree.go
- tree_blob.go
- tree_entry.go
- utils.go