Documentation ¶
Index ¶
- Constants
- func Kill(cmd *exec.Cmd) error
- func NewDummyAppConfig() *config.AppConfig
- func NewDummyLog() *logrus.Entry
- func RunCommandWithOutputLiveWrapper(c *OSCommand, command string, output func(string) string) error
- func RunLineOutputCmd(cmd *exec.Cmd, onLine func(line string) (bool, error)) error
- func WrapError(err error) error
- type Branch
- type BranchListBuilder
- type CheckoutOptions
- type Commit
- type CommitFile
- type CommitListBuilder
- type Conflict
- type FetchOptions
- type File
- type GetCommitsOptions
- type GetStatusFileOptions
- type GitCommand
- func (c *GitCommand) AbortMerge() error
- func (c *GitCommand) AddRemote(name string, url string) error
- func (c *GitCommand) AmendHead() (*exec.Cmd, error)
- func (c *GitCommand) AmendTo(sha string) error
- func (c *GitCommand) ApplyPatch(patch string, flags ...string) error
- func (c *GitCommand) BeforeAndAfterFileForRename(file *File) (*File, *File, error)
- func (c *GitCommand) BeginInteractiveRebaseForCommit(commits []*Commit, commitIndex int) error
- func (c *GitCommand) CatFile(fileName string) (string, error)
- func (c *GitCommand) CheckRemoteBranchExists(branch *Branch) bool
- func (c *GitCommand) Checkout(branch string, options CheckoutOptions) error
- func (c *GitCommand) CheckoutFile(commitSha, fileName string) error
- func (c *GitCommand) CherryPickCommits(commits []*Commit) error
- func (c *GitCommand) Commit(message string, flags string) (*exec.Cmd, error)
- func (c *GitCommand) ConfiguredPager() string
- func (c *GitCommand) CreateFixupCommit(sha string) error
- func (c *GitCommand) CreateLightweightTag(tagName string, commitSha string) error
- func (c *GitCommand) CurrentBranchName() (string, string, error)
- func (c *GitCommand) DeleteBranch(branch string, force bool) error
- func (c *GitCommand) DeletePatchesFromCommit(commits []*Commit, commitIndex int, p *patch.PatchManager) error
- func (c *GitCommand) DeleteRemoteBranch(remoteName string, branchName string) error
- func (c *GitCommand) DeleteTag(tagName string) error
- func (c *GitCommand) DiscardAllFileChanges(file *File) error
- func (c *GitCommand) DiscardAnyUnstagedFileChanges() error
- func (c *GitCommand) DiscardOldFileChanges(commits []*Commit, commitIndex int, fileName string) error
- func (c *GitCommand) DiscardUnstagedFileChanges(file *File) error
- func (c *GitCommand) EditRebaseTodo(index int, action string) error
- func (c *GitCommand) FastForward(branchName string, remoteName string, remoteBranchName string, ...) error
- func (c *GitCommand) Fetch(opts FetchOptions) error
- func (c *GitCommand) FetchRemote(remoteName string) error
- func (c *GitCommand) GenerateGenericRebaseTodo(commits []*Commit, actionIndex int, action string) (string, string, error)
- func (c *GitCommand) GenericMerge(commandType string, command string) error
- func (c *GitCommand) GetBranchGraph(branchName string) (string, error)
- func (c *GitCommand) GetBranchGraphCmdStr(branchName string) string
- func (c *GitCommand) GetBranchUpstreamDifferenceCount(branchName string) (string, string)
- func (c *GitCommand) GetCommitDifferences(from, to string) (string, string)
- func (c *GitCommand) GetCommitFilesFromFilenames(filenames string, parent string, patchManager *patch.PatchManager) []*CommitFile
- func (c *GitCommand) GetCommitMessage(commitSha string) (string, error)
- func (c *GitCommand) GetCurrentBranchUpstreamDifferenceCount() (string, string)
- func (c *GitCommand) GetFilesInDiff(from string, to string, reverse bool, patchManager *patch.PatchManager) ([]*CommitFile, error)
- func (c *GitCommand) GetHeadCommitMessage() (string, error)
- func (c *GitCommand) GetPager(width int) string
- func (c *GitCommand) GetReflogCommits(lastReflogCommit *Commit, filterPath string) ([]*Commit, bool, error)
- func (c *GitCommand) GetRemoteURL() string
- func (c *GitCommand) GetRemotes() ([]*Remote, error)
- func (c *GitCommand) GetStashEntries(filterPath string) []*StashEntry
- func (c *GitCommand) GetStatusFiles(opts GetStatusFileOptions) []*File
- func (c *GitCommand) GetTags() ([]*Tag, error)
- func (c *GitCommand) GetUpstreamForBranch(branchName string) (string, error)
- func (c *GitCommand) GitStatus(opts GitStatusOptions) (string, error)
- func (c *GitCommand) HardReset(baseSha string) error
- func (c *GitCommand) Ignore(filename string) error
- func (c *GitCommand) InteractiveRebase(commits []*Commit, index int, action string) error
- func (c *GitCommand) IsHeadDetached() bool
- func (c *GitCommand) IsInMergeState() (bool, error)
- func (c *GitCommand) ListStash() (string, error)
- func (c *GitCommand) Merge(branchName string, opts MergeOpts) error
- func (c *GitCommand) MergeStatusFiles(oldFiles, newFiles []*File, selectedFile *File) []*File
- func (c *GitCommand) MoveCommitDown(commits []*Commit, index int) error
- func (c *GitCommand) MovePatchToSelectedCommit(commits []*Commit, sourceCommitIdx int, destinationCommitIdx int, ...) error
- func (c *GitCommand) MoveTodoDown(index int) error
- func (c *GitCommand) NewBranch(name string, base string) error
- func (c *GitCommand) PrepareCommitAmendSubProcess() *exec.Cmd
- func (c *GitCommand) PrepareCommitSubProcess() *exec.Cmd
- func (c *GitCommand) PrepareInteractiveRebaseCommand(baseSha string, todo string, overrideEditor bool) (*exec.Cmd, error)
- func (c *GitCommand) PullPatchIntoIndex(commits []*Commit, commitIdx int, p *patch.PatchManager, stash bool) error
- func (c *GitCommand) PullPatchIntoNewCommit(commits []*Commit, commitIdx int, p *patch.PatchManager) error
- func (c *GitCommand) Push(branchName string, force bool, upstream string, args string, ...) error
- func (c *GitCommand) PushTag(remoteName string, tagName string) error
- func (c *GitCommand) RebaseBranch(branchName string) error
- func (c *GitCommand) RebaseMode() (string, error)
- func (c *GitCommand) RemoveRemote(name string) error
- func (c *GitCommand) RemoveTrackedFiles(name string) error
- func (c *GitCommand) RemoveUntrackedFiles() error
- func (c *GitCommand) RenameBranch(oldName string, newName string) error
- func (c *GitCommand) RenameCommit(name string) error
- func (c *GitCommand) RenameRemote(oldRemoteName string, newRemoteName string) error
- func (c *GitCommand) ResetAndClean() error
- func (c *GitCommand) ResetHard(ref string) error
- func (c *GitCommand) ResetSoft(ref string) error
- func (c *GitCommand) ResetToCommit(sha string, strength string, options RunCommandOptions) error
- func (c *GitCommand) Revert(sha string) error
- func (c *GitCommand) RewordCommit(commits []*Commit, index int) (*exec.Cmd, error)
- func (c *GitCommand) RunSkipEditorCommand(command string) error
- func (c *GitCommand) SetBranchUpstream(remoteName string, remoteBranchName string, branchName string) error
- func (c *GitCommand) SetUpstreamBranch(upstream string) error
- func (c *GitCommand) ShowCmdStr(sha string, filterPath string) string
- func (c *GitCommand) ShowFileDiff(from string, to string, reverse bool, fileName string, plain bool) (string, error)
- func (c *GitCommand) ShowFileDiffCmdStr(from string, to string, reverse bool, fileName string, plain bool) string
- func (c *GitCommand) ShowStashEntryCmdStr(index int) string
- func (c *GitCommand) SoftReset(baseSha string) error
- func (c *GitCommand) SquashAllAboveFixupCommits(sha string) error
- func (c *GitCommand) StageAll() error
- func (c *GitCommand) StageFile(fileName string) error
- func (c *GitCommand) StashDo(index int, method string) error
- func (c *GitCommand) StashSave(message string) error
- func (c *GitCommand) StashSaveStagedChanges(message string) error
- func (c *GitCommand) UnStageFile(fileName string, tracked bool) error
- func (c *GitCommand) UnstageAll() error
- func (c *GitCommand) UpdateRemoteUrl(remoteName string, updatedUrl string) error
- func (c *GitCommand) WorkingTreeState() string
- func (c *GitCommand) WorktreeFileDiff(file *File, plain bool, cached bool) string
- func (c *GitCommand) WorktreeFileDiffCmdStr(file *File, plain bool, cached bool) string
- type GitStatusOptions
- type MergeOpts
- type OSCommand
- func (c *OSCommand) AppendLineToFile(filename, line string) error
- func (c *OSCommand) CopyToClipboard(str string) error
- func (c *OSCommand) CreateFileWithContent(path string, content string) error
- func (c *OSCommand) CreateTempFile(filename, content string) (string, error)
- func (c *OSCommand) DetectUnamePass(command string, promptUserForCredential func(string) string) error
- func (c *OSCommand) EditFile(filename string) (*exec.Cmd, error)
- func (c *OSCommand) ExecutableFromString(commandStr string) *exec.Cmd
- func (c *OSCommand) FileExists(path string) (bool, error)
- func (c *OSCommand) FileType(path string) string
- func (c *OSCommand) GetLazygitPath() string
- func (c *OSCommand) OpenFile(filename string) error
- func (c *OSCommand) OpenLink(link string) error
- func (c *OSCommand) PipeCommands(commandStrings ...string) error
- func (c *OSCommand) PrepareSubProcess(cmdName string, commandArgs ...string) *exec.Cmd
- func (c *OSCommand) Quote(message string) string
- func (c *OSCommand) Remove(filename string) error
- func (c *OSCommand) RunCommand(formatString string, formatArgs ...interface{}) error
- func (c *OSCommand) RunCommandWithOptions(command string, options RunCommandOptions) error
- func (c *OSCommand) RunCommandWithOutput(formatString string, formatArgs ...interface{}) (string, error)
- func (c *OSCommand) RunCommandWithOutputLive(command string, output func(string) string) error
- func (c *OSCommand) RunCommandWithOutputWithOptions(command string, options RunCommandOptions) (string, error)
- func (c *OSCommand) RunCustomCommand(command string) *exec.Cmd
- func (c *OSCommand) RunDirectCommand(command string) (string, error)
- func (c *OSCommand) RunExecutable(cmd *exec.Cmd) error
- func (c *OSCommand) RunExecutableWithOutput(cmd *exec.Cmd) (string, error)
- func (c *OSCommand) RunPreparedCommand(cmd *exec.Cmd) error
- func (c *OSCommand) SetBeforeExecuteCmd(cmd func(*exec.Cmd))
- func (c *OSCommand) SetCommand(cmd func(string, ...string) *exec.Cmd)
- func (c *OSCommand) ShellCommandFromString(commandStr string) *exec.Cmd
- func (c *OSCommand) Unquote(message string) string
- type Platform
- type PullRequest
- type Remote
- type RemoteBranch
- type RepoInformation
- type RunCommandOptions
- type Service
- type StashEntry
- type Tag
Constants ¶
const CurrentBranchNameRegex = `(?m)^\*.*?([^ ]*?)\)?$`
this takes something like:
- (HEAD detached at 264fc6f5) remotes
and returns '264fc6f5' as the second match
const RENAME_SEPARATOR = " -> "
const SEPARATION_CHAR = "|"
Variables ¶
This section is empty.
Functions ¶
func NewDummyAppConfig ¶ added in v0.7.1
NewDummyAppConfig creates a new dummy AppConfig for testing
func NewDummyLog ¶ added in v0.7.1
NewDummyLog creates a new dummy Log for testing
func RunCommandWithOutputLiveWrapper ¶ added in v0.7.1
func RunCommandWithOutputLiveWrapper(c *OSCommand, command string, output func(string) string) error
RunCommandWithOutputLiveWrapper runs a command and return every word that gets written in stdout Output is a function that executes by every word that gets read by bufio As return of output you need to give a string that will be written to stdin NOTE: If the return data is empty it won't written anything to stdin
func RunLineOutputCmd ¶ added in v0.20.1
Types ¶
type Branch ¶
type Branch struct { Name string // the displayname is something like '(HEAD detached at 123asdf)', whereas in that case the name would be '123asdf' DisplayName string Recency string Pushables string Pullables string UpstreamName string Head bool }
Branch : A git branch duplicating this for now
func (*Branch) Description ¶ added in v0.22.0
type BranchListBuilder ¶ added in v0.10.1
type BranchListBuilder struct { Log *logrus.Entry GitCommand *GitCommand ReflogCommits []*Commit }
BranchListBuilder returns a list of Branch objects for the current repo
func NewBranchListBuilder ¶ added in v0.10.1
func NewBranchListBuilder(log *logrus.Entry, gitCommand *GitCommand, reflogCommits []*Commit) (*BranchListBuilder, error)
NewBranchListBuilder builds a new branch list builder
func (*BranchListBuilder) Build ¶ added in v0.10.1
func (b *BranchListBuilder) Build() []*Branch
Build the list of branches for the current repo
type CheckoutOptions ¶ added in v0.20.1
Checkout checks out a branch (or commit), with --force if you set the force arg to true
type Commit ¶
type Commit struct { Sha string Name string Status string // one of "unpushed", "pushed", "merged", "rebasing" or "selected" Action string // one of "", "pick", "edit", "squash", "reword", "drop", "fixup" Tags []string ExtraInfo string // something like 'HEAD -> master, tag: v0.15.2' Author string UnixTimestamp int64 // IsMerge tells us whether we're dealing with a merge commit i.e. a commit with two parents IsMerge bool }
Commit : A git commit
func (*Commit) Description ¶ added in v0.22.0
type CommitFile ¶ added in v0.8.1
type CommitFile struct { // Parent is the identifier of the parent object e.g. a commit SHA if this commit file is for a commit, or a stash entry ref like 'stash@{1}' Parent string Name string // PatchStatus tells us whether the file has been wholly or partially added to a patch. We might want to pull this logic up into the gui package and make it a map like we do with cherry picked commits PatchStatus int // one of 'WHOLE' 'PART' 'NONE' ChangeStatus string // e.g. 'A' for added or 'M' for modified. This is based on the result from git diff --name-status }
CommitFile : A git commit file
func (*CommitFile) Description ¶ added in v0.22.0
func (f *CommitFile) Description() string
func (*CommitFile) ID ¶ added in v0.22.0
func (f *CommitFile) ID() string
type CommitListBuilder ¶ added in v0.10.1
type CommitListBuilder struct { Log *logrus.Entry GitCommand *GitCommand OSCommand *OSCommand Tr *i18n.Localizer }
CommitListBuilder returns a list of Branch objects for the current repo
func NewCommitListBuilder ¶ added in v0.10.1
func NewCommitListBuilder(log *logrus.Entry, gitCommand *GitCommand, osCommand *OSCommand, tr *i18n.Localizer) *CommitListBuilder
NewCommitListBuilder builds a new commit list builder
func (*CommitListBuilder) GetCommits ¶ added in v0.10.1
func (c *CommitListBuilder) GetCommits(opts GetCommitsOptions) ([]*Commit, error)
GetCommits obtains the commits of the current branch
func (*CommitListBuilder) MergeRebasingCommits ¶ added in v0.22.4
func (c *CommitListBuilder) MergeRebasingCommits(commits []*Commit) ([]*Commit, error)
type Conflict ¶
Conflict : A git conflict with a start middle and end corresponding to line numbers in the file where the conflict bars appear
type FetchOptions ¶ added in v0.22.0
type File ¶
type File struct { Name string HasStagedChanges bool HasUnstagedChanges bool Tracked bool Deleted bool HasMergeConflicts bool HasInlineMergeConflicts bool DisplayString string Type string // one of 'file', 'directory', and 'other' ShortStatus string // e.g. 'AD', ' A', 'M ', '??' }
File : A file from git status duplicating this for now
func (*File) Description ¶ added in v0.22.0
type GetCommitsOptions ¶ added in v0.20.1
type GetStatusFileOptions ¶ added in v0.22.0
type GetStatusFileOptions struct {
NoRenames bool
}
GetStatusFiles git status files
type GitCommand ¶
type GitCommand struct { Log *logrus.Entry OSCommand *OSCommand Worktree *gogit.Worktree Repo *gogit.Repository Tr *i18n.Localizer Config config.AppConfigurer DotGitDir string PatchManager *patch.PatchManager // Push to current determines whether the user has configured to push to the remote branch of the same name as the current or not PushToCurrent bool // contains filtered or unexported fields }
GitCommand is our main git interface
func NewDummyGitCommand ¶ added in v0.7.1
func NewDummyGitCommand() *GitCommand
NewDummyGitCommand creates a new dummy GitCommand for testing
func NewDummyGitCommandWithOSCommand ¶ added in v0.7.1
func NewDummyGitCommandWithOSCommand(osCommand *OSCommand) *GitCommand
NewDummyGitCommandWithOSCommand creates a new dummy GitCommand for testing
func NewGitCommand ¶
func NewGitCommand(log *logrus.Entry, osCommand *OSCommand, tr *i18n.Localizer, config config.AppConfigurer) (*GitCommand, error)
NewGitCommand it runs git commands
func (*GitCommand) AddRemote ¶ added in v0.11.1
func (c *GitCommand) AddRemote(name string, url string) error
func (*GitCommand) AmendHead ¶ added in v0.7.1
func (c *GitCommand) AmendHead() (*exec.Cmd, error)
AmendHead amends HEAD with whatever is staged in your working tree
func (*GitCommand) AmendTo ¶ added in v0.7.1
func (c *GitCommand) AmendTo(sha string) error
AmendTo amends the given commit with whatever files are staged
func (*GitCommand) ApplyPatch ¶ added in v0.7.1
func (c *GitCommand) ApplyPatch(patch string, flags ...string) error
func (*GitCommand) BeforeAndAfterFileForRename ¶ added in v0.22.0
func (c *GitCommand) BeforeAndAfterFileForRename(file *File) (*File, *File, error)
func (*GitCommand) BeginInteractiveRebaseForCommit ¶ added in v0.10.1
func (c *GitCommand) BeginInteractiveRebaseForCommit(commits []*Commit, commitIndex int) error
BeginInteractiveRebaseForCommit starts an interactive rebase to edit the current commit and pick all others. After this you'll want to call `c.GenericMerge("rebase", "continue")`
func (*GitCommand) CatFile ¶
func (c *GitCommand) CatFile(fileName string) (string, error)
CatFile obtains the content of a file
func (*GitCommand) CheckRemoteBranchExists ¶ added in v0.7.1
func (c *GitCommand) CheckRemoteBranchExists(branch *Branch) bool
CheckRemoteBranchExists Returns remote branch
func (*GitCommand) Checkout ¶
func (c *GitCommand) Checkout(branch string, options CheckoutOptions) error
func (*GitCommand) CheckoutFile ¶ added in v0.8.1
func (c *GitCommand) CheckoutFile(commitSha, fileName string) error
CheckoutFile checks out the file for the given commit
func (*GitCommand) CherryPickCommits ¶ added in v0.7.1
func (c *GitCommand) CherryPickCommits(commits []*Commit) error
CherryPickCommits begins an interactive rebase with the given shas being cherry picked onto HEAD
func (*GitCommand) ConfiguredPager ¶ added in v0.16.1
func (c *GitCommand) ConfiguredPager() string
func (*GitCommand) CreateFixupCommit ¶ added in v0.8.1
func (c *GitCommand) CreateFixupCommit(sha string) error
CreateFixupCommit creates a commit that fixes up a previous commit
func (*GitCommand) CreateLightweightTag ¶ added in v0.11.1
func (c *GitCommand) CreateLightweightTag(tagName string, commitSha string) error
func (*GitCommand) CurrentBranchName ¶ added in v0.7.1
func (c *GitCommand) CurrentBranchName() (string, string, error)
CurrentBranchName get the current branch name and displayname. the first returned string is the name and the second is the displayname e.g. name is 123asdf and displayname is '(HEAD detached at 123asdf)'
func (*GitCommand) DeleteBranch ¶
func (c *GitCommand) DeleteBranch(branch string, force bool) error
DeleteBranch delete branch
func (*GitCommand) DeletePatchesFromCommit ¶ added in v0.10.1
func (c *GitCommand) DeletePatchesFromCommit(commits []*Commit, commitIndex int, p *patch.PatchManager) error
DeletePatchesFromCommit applies a patch in reverse for a commit
func (*GitCommand) DeleteRemoteBranch ¶ added in v0.11.1
func (c *GitCommand) DeleteRemoteBranch(remoteName string, branchName string) error
func (*GitCommand) DeleteTag ¶ added in v0.11.1
func (c *GitCommand) DeleteTag(tagName string) error
func (*GitCommand) DiscardAllFileChanges ¶ added in v0.8.1
func (c *GitCommand) DiscardAllFileChanges(file *File) error
DiscardAllFileChanges directly
func (*GitCommand) DiscardAnyUnstagedFileChanges ¶ added in v0.8.1
func (c *GitCommand) DiscardAnyUnstagedFileChanges() error
DiscardAnyUnstagedFileChanges discards any unstages file changes via `git checkout -- .`
func (*GitCommand) DiscardOldFileChanges ¶ added in v0.8.1
func (c *GitCommand) DiscardOldFileChanges(commits []*Commit, commitIndex int, fileName string) error
DiscardOldFileChanges discards changes to a file from an old commit
func (*GitCommand) DiscardUnstagedFileChanges ¶ added in v0.8.1
func (c *GitCommand) DiscardUnstagedFileChanges(file *File) error
DiscardUnstagedFileChanges directly
func (*GitCommand) EditRebaseTodo ¶ added in v0.7.1
func (c *GitCommand) EditRebaseTodo(index int, action string) error
EditRebaseTodo sets the action at a given index in the git-rebase-todo file
func (*GitCommand) FastForward ¶ added in v0.7.1
func (*GitCommand) FetchRemote ¶ added in v0.12.1
func (c *GitCommand) FetchRemote(remoteName string) error
func (*GitCommand) GenerateGenericRebaseTodo ¶ added in v0.7.1
func (*GitCommand) GenericMerge ¶ added in v0.7.1
func (c *GitCommand) GenericMerge(commandType string, command string) error
GenericMerge takes a commandType of "merge" or "rebase" and a command of "abort", "skip" or "continue" By default we skip the editor in the case where a commit will be made
func (*GitCommand) GetBranchGraph ¶
func (c *GitCommand) GetBranchGraph(branchName string) (string, error)
GetBranchGraph gets the color-formatted graph of the log for the given branch Currently it limits the result to 100 commits, but when we get async stuff working we can do lazy loading
func (*GitCommand) GetBranchGraphCmdStr ¶ added in v0.14.1
func (c *GitCommand) GetBranchGraphCmdStr(branchName string) string
func (*GitCommand) GetBranchUpstreamDifferenceCount ¶ added in v0.7.1
func (c *GitCommand) GetBranchUpstreamDifferenceCount(branchName string) (string, string)
func (*GitCommand) GetCommitDifferences ¶ added in v0.7.1
func (c *GitCommand) GetCommitDifferences(from, to string) (string, string)
GetCommitDifferences checks how many pushables/pullables there are for the current branch
func (*GitCommand) GetCommitFilesFromFilenames ¶ added in v0.22.0
func (c *GitCommand) GetCommitFilesFromFilenames(filenames string, parent string, patchManager *patch.PatchManager) []*CommitFile
filenames string is something like "file1\nfile2\nfile3"
func (*GitCommand) GetCommitMessage ¶ added in v0.22.0
func (c *GitCommand) GetCommitMessage(commitSha string) (string, error)
func (*GitCommand) GetCurrentBranchUpstreamDifferenceCount ¶ added in v0.7.1
func (c *GitCommand) GetCurrentBranchUpstreamDifferenceCount() (string, string)
func (*GitCommand) GetFilesInDiff ¶ added in v0.22.0
func (c *GitCommand) GetFilesInDiff(from string, to string, reverse bool, patchManager *patch.PatchManager) ([]*CommitFile, error)
GetFilesInDiff get the specified commit files
func (*GitCommand) GetHeadCommitMessage ¶ added in v0.20.3
func (c *GitCommand) GetHeadCommitMessage() (string, error)
Get the subject of the HEAD commit
func (*GitCommand) GetPager ¶ added in v0.16.1
func (c *GitCommand) GetPager(width int) string
func (*GitCommand) GetReflogCommits ¶ added in v0.14.1
func (*GitCommand) GetRemoteURL ¶ added in v0.7.1
func (c *GitCommand) GetRemoteURL() string
GetRemoteURL returns current repo remote url
func (*GitCommand) GetRemotes ¶ added in v0.11.1
func (c *GitCommand) GetRemotes() ([]*Remote, error)
func (*GitCommand) GetStashEntries ¶
func (c *GitCommand) GetStashEntries(filterPath string) []*StashEntry
GetStashEntries stash entries
func (*GitCommand) GetStatusFiles ¶
func (c *GitCommand) GetStatusFiles(opts GetStatusFileOptions) []*File
func (*GitCommand) GetTags ¶ added in v0.11.1
func (c *GitCommand) GetTags() ([]*Tag, error)
func (*GitCommand) GetUpstreamForBranch ¶ added in v0.10.6
func (c *GitCommand) GetUpstreamForBranch(branchName string) (string, error)
func (*GitCommand) GitStatus ¶
func (c *GitCommand) GitStatus(opts GitStatusOptions) (string, error)
func (*GitCommand) HardReset ¶ added in v0.7.1
func (c *GitCommand) HardReset(baseSha string) error
func (*GitCommand) Ignore ¶
func (c *GitCommand) Ignore(filename string) error
Ignore adds a file to the gitignore for the repo
func (*GitCommand) InteractiveRebase ¶ added in v0.7.1
func (c *GitCommand) InteractiveRebase(commits []*Commit, index int, action string) error
func (*GitCommand) IsHeadDetached ¶ added in v0.11.1
func (c *GitCommand) IsHeadDetached() bool
func (*GitCommand) IsInMergeState ¶
func (c *GitCommand) IsInMergeState() (bool, error)
IsInMergeState states whether we are still mid-merge
func (*GitCommand) ListStash ¶
func (c *GitCommand) ListStash() (string, error)
ListStash list stash
func (*GitCommand) Merge ¶
func (c *GitCommand) Merge(branchName string, opts MergeOpts) error
Merge merge
func (*GitCommand) MergeStatusFiles ¶
func (c *GitCommand) MergeStatusFiles(oldFiles, newFiles []*File, selectedFile *File) []*File
MergeStatusFiles merge status files
func (*GitCommand) MoveCommitDown ¶ added in v0.7.1
func (c *GitCommand) MoveCommitDown(commits []*Commit, index int) error
func (*GitCommand) MovePatchToSelectedCommit ¶ added in v0.10.1
func (c *GitCommand) MovePatchToSelectedCommit(commits []*Commit, sourceCommitIdx int, destinationCommitIdx int, p *patch.PatchManager) error
func (*GitCommand) MoveTodoDown ¶ added in v0.7.1
func (c *GitCommand) MoveTodoDown(index int) error
MoveTodoDown moves a rebase todo item down by one position
func (*GitCommand) NewBranch ¶
func (c *GitCommand) NewBranch(name string, base string) error
NewBranch create new branch
func (*GitCommand) PrepareCommitAmendSubProcess ¶ added in v0.2.2
func (c *GitCommand) PrepareCommitAmendSubProcess() *exec.Cmd
PrepareCommitAmendSubProcess prepares a subprocess for `git commit --amend --allow-empty`
func (*GitCommand) PrepareCommitSubProcess ¶
func (c *GitCommand) PrepareCommitSubProcess() *exec.Cmd
PrepareCommitSubProcess prepares a subprocess for `git commit`
func (*GitCommand) PrepareInteractiveRebaseCommand ¶ added in v0.7.1
func (c *GitCommand) PrepareInteractiveRebaseCommand(baseSha string, todo string, overrideEditor bool) (*exec.Cmd, error)
PrepareInteractiveRebaseCommand returns the cmd for an interactive rebase we tell git to run lazygit to edit the todo list, and we pass the client lazygit a todo string to write to the todo file
func (*GitCommand) PullPatchIntoIndex ¶ added in v0.10.1
func (c *GitCommand) PullPatchIntoIndex(commits []*Commit, commitIdx int, p *patch.PatchManager, stash bool) error
func (*GitCommand) PullPatchIntoNewCommit ¶ added in v0.20.3
func (c *GitCommand) PullPatchIntoNewCommit(commits []*Commit, commitIdx int, p *patch.PatchManager) error
func (*GitCommand) Push ¶
func (c *GitCommand) Push(branchName string, force bool, upstream string, args string, promptUserForCredential func(string) string) error
Push pushes to a branch
func (*GitCommand) PushTag ¶ added in v0.11.1
func (c *GitCommand) PushTag(remoteName string, tagName string) error
func (*GitCommand) RebaseBranch ¶ added in v0.7.1
func (c *GitCommand) RebaseBranch(branchName string) error
RebaseBranch interactive rebases onto a branch
func (*GitCommand) RebaseMode ¶ added in v0.7.1
func (c *GitCommand) RebaseMode() (string, error)
RebaseMode returns "" for non-rebase mode, "normal" for normal rebase and "interactive" for interactive rebase
func (*GitCommand) RemoveRemote ¶ added in v0.11.1
func (c *GitCommand) RemoveRemote(name string) error
func (*GitCommand) RemoveTrackedFiles ¶ added in v0.14.3
func (c *GitCommand) RemoveTrackedFiles(name string) error
RemoveTrackedFiles will delete the given file(s) even if they are currently tracked
func (*GitCommand) RemoveUntrackedFiles ¶ added in v0.8.1
func (c *GitCommand) RemoveUntrackedFiles() error
RemoveUntrackedFiles runs `git clean -fd`
func (*GitCommand) RenameBranch ¶ added in v0.17.0
func (c *GitCommand) RenameBranch(oldName string, newName string) error
func (*GitCommand) RenameCommit ¶
func (c *GitCommand) RenameCommit(name string) error
RenameCommit renames the topmost commit with the given name
func (*GitCommand) RenameRemote ¶ added in v0.11.1
func (c *GitCommand) RenameRemote(oldRemoteName string, newRemoteName string) error
func (*GitCommand) ResetAndClean ¶ added in v0.7.1
func (c *GitCommand) ResetAndClean() error
ResetAndClean removes all unstaged changes and removes all untracked files
func (*GitCommand) ResetHard ¶
func (c *GitCommand) ResetHard(ref string) error
ResetHardHead runs `git reset --hard`
func (*GitCommand) ResetSoft ¶ added in v0.12.1
func (c *GitCommand) ResetSoft(ref string) error
ResetSoft runs `git reset --soft HEAD`
func (*GitCommand) ResetToCommit ¶
func (c *GitCommand) ResetToCommit(sha string, strength string, options RunCommandOptions) error
ResetToCommit reset to commit
func (*GitCommand) Revert ¶ added in v0.7.1
func (c *GitCommand) Revert(sha string) error
Revert reverts the selected commit by sha
func (*GitCommand) RewordCommit ¶ added in v0.7.1
func (*GitCommand) RunSkipEditorCommand ¶ added in v0.7.1
func (c *GitCommand) RunSkipEditorCommand(command string) error
func (*GitCommand) SetBranchUpstream ¶ added in v0.11.1
func (c *GitCommand) SetBranchUpstream(remoteName string, remoteBranchName string, branchName string) error
func (*GitCommand) SetUpstreamBranch ¶ added in v0.10.6
func (c *GitCommand) SetUpstreamBranch(upstream string) error
func (*GitCommand) ShowCmdStr ¶ added in v0.14.1
func (c *GitCommand) ShowCmdStr(sha string, filterPath string) string
func (*GitCommand) ShowFileDiff ¶ added in v0.22.0
func (c *GitCommand) ShowFileDiff(from string, to string, reverse bool, fileName string, plain bool) (string, error)
ShowFileDiff get the diff of specified from and to. Typically this will be used for a single commit so it'll be 123abc^..123abc but when we're in diff mode it could be any 'from' to any 'to'. The reverse flag is also here thanks to diff mode.
func (*GitCommand) ShowFileDiffCmdStr ¶ added in v0.22.0
func (*GitCommand) ShowStashEntryCmdStr ¶ added in v0.14.1
func (c *GitCommand) ShowStashEntryCmdStr(index int) string
GetStashEntryDiff stash diff
func (*GitCommand) SoftReset ¶ added in v0.7.1
func (c *GitCommand) SoftReset(baseSha string) error
func (*GitCommand) SquashAllAboveFixupCommits ¶ added in v0.8.1
func (c *GitCommand) SquashAllAboveFixupCommits(sha string) error
SquashAllAboveFixupCommits squashes all fixup! commits above the given one
func (*GitCommand) StageAll ¶ added in v0.2.0
func (c *GitCommand) StageAll() error
StageAll stages all files
func (*GitCommand) StageFile ¶
func (c *GitCommand) StageFile(fileName string) error
StageFile stages a file
func (*GitCommand) StashDo ¶
func (c *GitCommand) StashDo(index int, method string) error
StashDo modify stash
func (*GitCommand) StashSave ¶
func (c *GitCommand) StashSave(message string) error
StashSave save stash TODO: before calling this, check if there is anything to save
func (*GitCommand) StashSaveStagedChanges ¶ added in v0.8.1
func (c *GitCommand) StashSaveStagedChanges(message string) error
StashSaveStagedChanges stashes only the currently staged changes. This takes a few steps shoutouts to Joe on https://stackoverflow.com/questions/14759748/stashing-only-staged-changes-in-git-is-it-possible
func (*GitCommand) UnStageFile ¶
func (c *GitCommand) UnStageFile(fileName string, tracked bool) error
UnStageFile unstages a file
func (*GitCommand) UnstageAll ¶ added in v0.2.0
func (c *GitCommand) UnstageAll() error
UnstageAll stages all files
func (*GitCommand) UpdateRemoteUrl ¶ added in v0.11.1
func (c *GitCommand) UpdateRemoteUrl(remoteName string, updatedUrl string) error
func (*GitCommand) WorkingTreeState ¶ added in v0.20.1
func (c *GitCommand) WorkingTreeState() string
func (*GitCommand) WorktreeFileDiff ¶ added in v0.22.0
func (c *GitCommand) WorktreeFileDiff(file *File, plain bool, cached bool) string
WorktreeFileDiff returns the diff of a file
func (*GitCommand) WorktreeFileDiffCmdStr ¶ added in v0.22.0
func (c *GitCommand) WorktreeFileDiffCmdStr(file *File, plain bool, cached bool) string
type GitStatusOptions ¶ added in v0.22.0
type GitStatusOptions struct {
NoRenames bool
}
GitStatus returns the plaintext short status of the repo
type OSCommand ¶
type OSCommand struct { Log *logrus.Entry Platform *Platform Config config.AppConfigurer // contains filtered or unexported fields }
OSCommand holds all the os commands
func NewDummyOSCommand ¶ added in v0.7.1
func NewDummyOSCommand() *OSCommand
NewDummyOSCommand creates a new dummy OSCommand for testing
func NewOSCommand ¶
func NewOSCommand(log *logrus.Entry, config config.AppConfigurer) *OSCommand
NewOSCommand os command runner
func (*OSCommand) AppendLineToFile ¶ added in v0.1.73
AppendLineToFile adds a new line in file
func (*OSCommand) CopyToClipboard ¶ added in v0.20.1
func (*OSCommand) CreateFileWithContent ¶ added in v0.10.1
CreateFileWithContent creates a file with the given content
func (*OSCommand) CreateTempFile ¶ added in v0.7.1
CreateTempFile writes a string to a new temp file and returns the file's name
func (*OSCommand) DetectUnamePass ¶ added in v0.7.1
func (c *OSCommand) DetectUnamePass(command string, promptUserForCredential func(string) string) error
DetectUnamePass detect a username / password question in a command promptUserForCredential is a function that gets executed when this function detect you need to fillin a password The promptUserForCredential argument will be "username" or "password" and expects the user's password or username back
func (*OSCommand) EditFile ¶
EditFile opens a file in a subprocess using whatever editor is available, falling back to core.editor, VISUAL, EDITOR, then vi
func (*OSCommand) ExecutableFromString ¶ added in v0.7.1
ExecutableFromString takes a string like `git status` and returns an executable command for it
func (*OSCommand) FileExists ¶ added in v0.7.1
FileExists checks whether a file exists at the specified path
func (*OSCommand) FileType ¶ added in v0.2.0
FileType tells us if the file is a file, directory or other
func (*OSCommand) GetLazygitPath ¶ added in v0.7.1
GetLazygitPath returns the path of the currently executed file
func (*OSCommand) PipeCommands ¶ added in v0.8.1
PipeCommands runs a heap of commands and pipes their inputs/outputs together like A | B | C
func (*OSCommand) PrepareSubProcess ¶
PrepareSubProcess iniPrepareSubProcessrocess then tells the Gui to switch to it TODO: see if this needs to exist, given that ExecutableFromString does the same things
func (*OSCommand) RunCommand ¶
RunCommand runs a command and just returns the error
func (*OSCommand) RunCommandWithOptions ¶ added in v0.20.1
func (c *OSCommand) RunCommandWithOptions(command string, options RunCommandOptions) error
func (*OSCommand) RunCommandWithOutput ¶
func (c *OSCommand) RunCommandWithOutput(formatString string, formatArgs ...interface{}) (string, error)
RunCommandWithOutput wrapper around commands returning their output and error NOTE: If you don't pass any formatArgs we'll just use the command directly, however there's a bizarre compiler error/warning when you pass in a formatString with a percent sign because it thinks it's supposed to be a formatString when in that case it's not. To get around that error you'll need to define the string in a variable and pass the variable into RunCommandWithOutput.
func (*OSCommand) RunCommandWithOutputLive ¶ added in v0.7.1
RunCommandWithOutputLive runs RunCommandWithOutputLiveWrapper
func (*OSCommand) RunCommandWithOutputWithOptions ¶ added in v0.20.1
func (c *OSCommand) RunCommandWithOutputWithOptions(command string, options RunCommandOptions) (string, error)
func (*OSCommand) RunCustomCommand ¶ added in v0.8.1
RunCustomCommand returns the pointer to a custom command
func (*OSCommand) RunDirectCommand ¶
RunDirectCommand wrapper around direct commands
func (*OSCommand) RunExecutable ¶ added in v0.7.1
RunExecutable runs an executable file and returns an error if there was one
func (*OSCommand) RunExecutableWithOutput ¶ added in v0.7.1
RunExecutableWithOutput runs an executable file and returns its output
func (*OSCommand) RunPreparedCommand ¶ added in v0.7.1
RunPreparedCommand takes a pointer to an exec.Cmd and runs it this is useful if you need to give your command some environment variables before running it
func (*OSCommand) SetBeforeExecuteCmd ¶ added in v0.14.1
func (*OSCommand) SetCommand ¶ added in v0.7.1
SetCommand sets the command function used by the struct. To be used for testing only
func (*OSCommand) ShellCommandFromString ¶ added in v0.20.8
ShellCommandFromString takes a string like `git commit` and returns an executable shell command for it
type Platform ¶
type Platform struct {
// contains filtered or unexported fields
}
Platform stores the os state
type PullRequest ¶ added in v0.7.1
type PullRequest struct { GitServices []*Service GitCommand *GitCommand }
PullRequest opens a link in browser to create new pull request with selected branch
func NewPullRequest ¶ added in v0.7.1
func NewPullRequest(gitCommand *GitCommand) *PullRequest
NewPullRequest creates new instance of PullRequest
func (*PullRequest) Create ¶ added in v0.7.1
func (pr *PullRequest) Create(branch *Branch) error
Create opens link to new pull request in browser
type Remote ¶ added in v0.11.1
type Remote struct { Name string Urls []string Branches []*RemoteBranch }
Remote : A git remote
func (*Remote) Description ¶ added in v0.22.0
type RemoteBranch ¶ added in v0.11.1
Remote Branch : A git remote branch
func (*RemoteBranch) Description ¶ added in v0.22.0
func (r *RemoteBranch) Description() string
func (*RemoteBranch) FullName ¶ added in v0.20.1
func (r *RemoteBranch) FullName() string
func (*RemoteBranch) ID ¶ added in v0.22.0
func (r *RemoteBranch) ID() string
func (*RemoteBranch) RefName ¶ added in v0.22.0
func (r *RemoteBranch) RefName() string
type RepoInformation ¶ added in v0.7.1
RepoInformation holds some basic information about the repo
type RunCommandOptions ¶ added in v0.20.1
type RunCommandOptions struct {
EnvVars []string
}
type StashEntry ¶
StashEntry : A git stash entry
func (*StashEntry) Description ¶ added in v0.22.0
func (s *StashEntry) Description() string
func (*StashEntry) ID ¶ added in v0.22.0
func (s *StashEntry) ID() string
func (*StashEntry) RefName ¶ added in v0.20.1
func (s *StashEntry) RefName() string