Documentation ¶
Index ¶
- Constants
- func ShortSha(sha string) string
- type CheckoutBranch
- type Diff
- type DiffOpts
- type GetRefs
- type GetRefsItem
- type ListRefs
- type MergeBase
- type Origin
- type Output
- type RefInfo
- type Repo
- func (r *Repo) CheckoutBranch(opts *CheckoutBranch) (string, error)
- func (r *Repo) CurrentBranchName() (string, error)
- func (r *Repo) DefaultBranch() (string, error)
- func (r *Repo) Diff(d *DiffOpts) (*Diff, error)
- func (r *Repo) Dir() string
- func (r *Repo) GetRefs(opts *GetRefs) ([]*GetRefsItem, error)
- func (r *Repo) Git(args ...string) (string, error)
- func (r *Repo) GitDir() string
- func (r *Repo) GitStdin(args []string, stdin io.Reader) (string, error)
- func (r *Repo) ListRefs(showRef *ListRefs) ([]RefInfo, error)
- func (r *Repo) MergeBase(mb *MergeBase) (string, error)
- func (r *Repo) Origin() (*Origin, error)
- func (r *Repo) RevParse(rp *RevParse) (string, error)
- func (r *Repo) Run(opts *RunOpts) (*Output, error)
- func (r *Repo) UpdateRef(update *UpdateRef) error
- type RevParse
- type RunOpts
- type UpdateRef
- type UpstreamStatus
Constants ¶
const ( TypeCommit = "commit" TypeTree = "tree" TypeBlob = "blob" TypeTag = "tag" )
The various types of objects in git.
const Missing = "0000000000000000000000000000000000000000"
Missing is a sentinel zero-value for object id (aka sha). Git treats this value as "this thing doesn't exist". For example, when updating a ref, if the old value is specified as EmptyOid, Git will refuse to update the ref if already exists.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type CheckoutBranch ¶
type DiffOpts ¶
type DiffOpts struct { // If specified, generate the diff between the working tree and this commit. // If empty (default), generates the diff between the working tree and the // current index (i.e., the diff containing all unstaged changes). Commit string // If true, don't actually generate the diff, just return whether or not its // empty. If set, Diff.Contents will always be an empty string. Quiet bool }
type GetRefsItem ¶
type RefInfo ¶
type RefInfo struct { Name string Type string Oid string // The name of the upstream ref (e.g., refs/remotes/<remote>/<branch>) Upstream string // The status of the ref relative to the upstream. UpstreamStatus UpstreamStatus }
type Repo ¶
type Repo struct {
// contains filtered or unexported fields
}
func (*Repo) CheckoutBranch ¶
func (r *Repo) CheckoutBranch(opts *CheckoutBranch) (string, error)
CheckoutBranch performs a checkout of the given branch and returns the name of the previous branch, if any (this can be used to restore the previous branch if necessary). The returned previous branch name may be empty if the repo is currently not checked out to a branch (i.e., in detached HEAD state).
func (*Repo) CurrentBranchName ¶
CurrentBranchName returns the name of the current branch. The name is return in "short" format -- i.e., without the "refs/heads/" prefix. IMPORTANT: This function will return an error if the repository is currently in a detached-head state (e.g., during a rebase conflict).
func (*Repo) DefaultBranch ¶
func (*Repo) GetRefs ¶
func (r *Repo) GetRefs(opts *GetRefs) ([]*GetRefsItem, error)
GetRefs reads the contents of the specified objects from the repository. This corresponds to the `git cat-file --batch` command.
type UpdateRef ¶
type UpdateRef struct { // The name of the ref (e.g., refs/heads/my-branch). Ref string // The Git object ID to set the ref to. New string // Only update the ref if the current value (before the update) is equal to // this object ID. Use Missing to only create the ref if it didn't // already exists (e.g., to avoid overwriting a branch). Old string }
type UpstreamStatus ¶
type UpstreamStatus string
UpstreamStatus is the status of a git ref (usually a branch) relative to its upstream.
const ( Ahead UpstreamStatus = ">" Behind UpstreamStatus = "<" Divergent UpstreamStatus = "<>" InSync UpstreamStatus = "=" )
The possible upstream statuses. These match what is returned by Git's `%(upstream:trackshort)` format directive.