Documentation ¶
Index ¶
- Constants
- func GetBranchColor(name string) color.Attribute
- func GetHeaderFromDiff(diff string) string
- func ModifiedPatchForRange(log *logrus.Entry, filename string, diffText string, firstLineIdx int, ...) string
- func NewDummyAppConfig() *config.AppConfig
- func NewDummyLog() *logrus.Entry
- func RunCommandWithOutputLiveWrapper(c *OSCommand, command string, output func(string) string) error
- func WrapError(err error) error
- type Branch
- type BranchListBuilder
- type Commit
- type CommitFile
- type CommitListBuilder
- type Conflict
- type File
- 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) 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, force bool) 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) CreateFixupCommit(sha string) error
- func (c *GitCommand) CreateLightweightTag(tagName string, commitSha string) error
- func (c *GitCommand) CurrentBranchName() (string, error)
- func (c *GitCommand) DeleteBranch(branch string, force bool) error
- func (c *GitCommand) DeletePatchesFromCommit(commits []*Commit, commitIndex int, p *PatchManager) error
- func (c *GitCommand) DeleteRemoteBranch(remoteName string, branchName string) error
- func (c *GitCommand) DeleteTag(tagName string) error
- func (c *GitCommand) Diff(file *File, plain bool, cached bool) string
- func (c *GitCommand) DiffCmdStr(file *File, plain bool, cached bool) string
- func (c *GitCommand) DiffCommits(sha1, sha2 string) (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(unamePassQuestion func(string) string, canAskForCredentials bool) 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) GetCommitFiles(commitSha string, patchManager *PatchManager) ([]*CommitFile, error)
- func (c *GitCommand) GetCurrentBranchUpstreamDifferenceCount() (string, string)
- func (c *GitCommand) GetReflogCommits() ([]*Commit, error)
- func (c *GitCommand) GetRemoteURL() string
- func (c *GitCommand) GetRemotes() ([]*Remote, error)
- func (c *GitCommand) GetStashEntries() []*StashEntry
- func (c *GitCommand) GetStatusFiles() []*File
- func (c *GitCommand) GetTags() ([]*Tag, error)
- func (c *GitCommand) GetUpstreamForBranch(branchName string) (string, error)
- func (c *GitCommand) GitStatus() (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) error
- func (c *GitCommand) MergeStatusFiles(oldFiles, newFiles []*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) 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) Pull(args string, ask func(string) string) error
- func (c *GitCommand) PullPatchIntoIndex(commits []*Commit, commitIdx int, p *PatchManager) error
- func (c *GitCommand) PullWithoutPasswordCheck(args string) 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) 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) 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) string
- func (c *GitCommand) ShowCommitFile(commitSha, fileName string, plain bool) (string, error)
- func (c *GitCommand) ShowCommitFileCmdStr(commitSha, 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
- type OSCommand
- func (c *OSCommand) AppendLineToFile(filename, line 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, ask 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) RunCommandWithOutput(formatString string, formatArgs ...interface{}) (string, error)
- func (c *OSCommand) RunCommandWithOutputLive(command string, output func(string) 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) Unquote(message string) string
- type PatchHunk
- type PatchLine
- type PatchManager
- func (p *PatchManager) AddFile(filename string)
- func (p *PatchManager) AddFileLineRange(filename string, firstLineIdx, lastLineIdx int)
- func (p *PatchManager) ApplyPatches(reverse bool) error
- func (p *PatchManager) CommitSelected() bool
- func (p *PatchManager) GetFileIncLineIndices(filename string) []int
- func (p *PatchManager) GetFileStatus(filename string) int
- func (p *PatchManager) IsEmpty() bool
- func (p *PatchManager) RemoveFile(filename string)
- func (p *PatchManager) RemoveFileLineRange(filename string, firstLineIdx, lastLineIdx int)
- func (p *PatchManager) RenderAggregatedPatchColored(plain bool) string
- func (p *PatchManager) RenderEachFilePatch(plain bool) []string
- func (p *PatchManager) RenderPatchForFile(filename string, plain bool, reverse bool, keepOriginalHeader bool) string
- func (p *PatchManager) RenderPlainPatchForFile(filename string, reverse bool, keepOriginalHeader bool) string
- func (p *PatchManager) Reset()
- func (p *PatchManager) Start(commitSha string, diffMap map[string]string)
- func (p *PatchManager) ToggleFileWhole(filename string)
- type PatchModifier
- type PatchParser
- type Platform
- type PullRequest
- type Remote
- type RemoteBranch
- type RepoInformation
- type Service
- type StashEntry
- type Tag
Constants ¶
const ( // UNSELECTED is for when the commit file has not been added to the patch in any way UNSELECTED = iota // WHOLE is for when you want to add the whole diff of a file to the patch, // including e.g. if it was deleted WHOLE = iota // PART is for when you're only talking about specific lines that have been modified PART )
const ( PATCH_HEADER = iota COMMIT_SHA COMMIT_DESCRIPTION HUNK_HEADER ADDITION DELETION CONTEXT NEWLINE_MESSAGE )
const CurrentBranchNameRegex = `(?m)^\*.*?([^ ]*?)\)?$`
this takes something like:
- (HEAD detached at 264fc6f5) remotes
and returns '264fc6f5' as the second match
Variables ¶
This section is empty.
Functions ¶
func GetBranchColor ¶ added in v0.11.1
GetBranchColor branch color
func GetHeaderFromDiff ¶ added in v0.10.1
func ModifiedPatchForRange ¶ added in v0.10.1
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
Types ¶
type Branch ¶
Branch : A git branch duplicating this for now
func (*Branch) GetDisplayStrings ¶ added in v0.3.0
GetDisplayStrings returns the display string of branch
type BranchListBuilder ¶ added in v0.10.1
type BranchListBuilder struct { Log *logrus.Entry GitCommand *GitCommand }
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) (*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 Commit ¶
type Commit struct { Sha string Name string Status string // one of "unpushed", "pushed", "merged", "rebasing" or "selected" DisplayString string Action string // one of "", "pick", "edit", "squash", "reword", "drop", "fixup" Copied bool // to know if this commit is ready to be cherry-picked somewhere Tags []string }
Commit : A git commit
func (*Commit) GetDisplayStrings ¶ added in v0.3.0
GetDisplayStrings is a function.
type CommitFile ¶ added in v0.8.1
type CommitFile struct { Sha string Name string DisplayString string Status int // one of 'WHOLE' 'PART' 'NONE' }
CommitFile : A git commit file
func (*CommitFile) GetDisplayStrings ¶ added in v0.8.1
func (f *CommitFile) GetDisplayStrings(isFocused bool) []string
GetDisplayStrings is a function.
type CommitListBuilder ¶ added in v0.10.1
type CommitListBuilder struct { Log *logrus.Entry GitCommand *GitCommand OSCommand *OSCommand Tr *i18n.Localizer CherryPickedCommits []*Commit DiffEntries []*Commit }
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, cherryPickedCommits []*Commit, diffEntries []*Commit) (*CommitListBuilder, error)
NewCommitListBuilder builds a new commit list builder
func (*CommitListBuilder) GetCommits ¶ added in v0.10.1
func (c *CommitListBuilder) GetCommits(limit bool) ([]*Commit, error)
GetCommits obtains the commits of the current branch
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 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) GetDisplayStrings ¶ added in v0.3.0
GetDisplayStrings returns the display string of a file
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 *PatchManager // 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) 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, force bool) error
Checkout checks out a branch (or commit), with --force if you set the force arg to true
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) 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, error)
CurrentBranchName is a function.
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 *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) Diff ¶
func (c *GitCommand) Diff(file *File, plain bool, cached bool) string
Diff returns the diff of a file
func (*GitCommand) DiffCmdStr ¶ added in v0.14.1
func (c *GitCommand) DiffCmdStr(file *File, plain bool, cached bool) string
func (*GitCommand) DiffCommits ¶ added in v0.8.1
func (c *GitCommand) DiffCommits(sha1, sha2 string) (string, error)
DiffCommits show diff between commits
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 (c *GitCommand) FastForward(branchName string, remoteName string, remoteBranchName string) error
func (*GitCommand) Fetch ¶
func (c *GitCommand) Fetch(unamePassQuestion func(string) string, canAskForCredentials bool) error
Fetch fetch git repo
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) GetCommitFiles ¶ added in v0.8.1
func (c *GitCommand) GetCommitFiles(commitSha string, patchManager *PatchManager) ([]*CommitFile, error)
GetCommitFiles get the specified commit files
func (*GitCommand) GetCurrentBranchUpstreamDifferenceCount ¶ added in v0.7.1
func (c *GitCommand) GetCurrentBranchUpstreamDifferenceCount() (string, string)
func (*GitCommand) GetReflogCommits ¶ added in v0.14.1
func (c *GitCommand) GetReflogCommits() ([]*Commit, error)
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() []*StashEntry
GetStashEntries stash entries
func (*GitCommand) GetStatusFiles ¶
func (c *GitCommand) GetStatusFiles() []*File
GetStatusFiles git status files
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() (string, error)
GitStatus returns the plaintext short status of the repo
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) MergeStatusFiles ¶
func (c *GitCommand) MergeStatusFiles(oldFiles, newFiles []*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 *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) 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) Pull ¶
func (c *GitCommand) Pull(args string, ask func(string) string) error
Pull pulls from repo
func (*GitCommand) PullPatchIntoIndex ¶ added in v0.10.1
func (c *GitCommand) PullPatchIntoIndex(commits []*Commit, commitIdx int, p *PatchManager) error
func (*GitCommand) PullWithoutPasswordCheck ¶ added in v0.14.4
func (c *GitCommand) PullWithoutPasswordCheck(args string) error
PullWithoutPasswordCheck assumes that the pull will not prompt the user for a password
func (*GitCommand) Push ¶
func (c *GitCommand) Push(branchName string, force bool, upstream string, args string, ask 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) 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) 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) string
func (*GitCommand) ShowCommitFile ¶ added in v0.8.1
func (c *GitCommand) ShowCommitFile(commitSha, fileName string, plain bool) (string, error)
ShowCommitFile get the diff of specified commit file
func (*GitCommand) ShowCommitFileCmdStr ¶ added in v0.14.1
func (c *GitCommand) ShowCommitFileCmdStr(commitSha, fileName string, plain bool) string
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
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) 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
DetectUnamePass detect a username / password question in a command ask is a function that gets executen when this function detect you need to fillin a password The ask 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) 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) 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
type PatchHunk ¶ added in v0.10.1
type PatchHunk struct { FirstLineIdx int LastLineIdx int // contains filtered or unexported fields }
func GetHunksFromDiff ¶ added in v0.10.1
type PatchManager ¶ added in v0.10.1
type PatchManager struct { CommitSha string Log *logrus.Entry ApplyPatch applyPatchFunc // contains filtered or unexported fields }
PatchManager manages the building of a patch for a commit to be applied to another commit (or the working tree, or removed from the current commit)
func NewPatchManager ¶ added in v0.10.1
func NewPatchManager(log *logrus.Entry, applyPatch applyPatchFunc) *PatchManager
NewPatchManager returns a new PatchModifier
func (*PatchManager) AddFile ¶ added in v0.10.1
func (p *PatchManager) AddFile(filename string)
func (*PatchManager) AddFileLineRange ¶ added in v0.10.1
func (p *PatchManager) AddFileLineRange(filename string, firstLineIdx, lastLineIdx int)
func (*PatchManager) ApplyPatches ¶ added in v0.10.1
func (p *PatchManager) ApplyPatches(reverse bool) error
func (*PatchManager) CommitSelected ¶ added in v0.10.1
func (p *PatchManager) CommitSelected() bool
func (*PatchManager) GetFileIncLineIndices ¶ added in v0.10.1
func (p *PatchManager) GetFileIncLineIndices(filename string) []int
func (*PatchManager) GetFileStatus ¶ added in v0.10.1
func (p *PatchManager) GetFileStatus(filename string) int
func (*PatchManager) IsEmpty ¶ added in v0.10.1
func (p *PatchManager) IsEmpty() bool
func (*PatchManager) RemoveFile ¶ added in v0.10.1
func (p *PatchManager) RemoveFile(filename string)
func (*PatchManager) RemoveFileLineRange ¶ added in v0.10.1
func (p *PatchManager) RemoveFileLineRange(filename string, firstLineIdx, lastLineIdx int)
func (*PatchManager) RenderAggregatedPatchColored ¶ added in v0.10.1
func (p *PatchManager) RenderAggregatedPatchColored(plain bool) string
func (*PatchManager) RenderEachFilePatch ¶ added in v0.10.1
func (p *PatchManager) RenderEachFilePatch(plain bool) []string
func (*PatchManager) RenderPatchForFile ¶ added in v0.10.1
func (*PatchManager) RenderPlainPatchForFile ¶ added in v0.10.1
func (p *PatchManager) RenderPlainPatchForFile(filename string, reverse bool, keepOriginalHeader bool) string
func (*PatchManager) Start ¶ added in v0.10.1
func (p *PatchManager) Start(commitSha string, diffMap map[string]string)
NewPatchManager returns a new PatchModifier
func (*PatchManager) ToggleFileWhole ¶ added in v0.10.1
func (p *PatchManager) ToggleFileWhole(filename string)
type PatchModifier ¶ added in v0.10.1
func NewPatchModifier ¶ added in v0.10.1
func NewPatchModifier(log *logrus.Entry, filename string, diffText string) *PatchModifier
func (*PatchModifier) ModifiedPatchForLines ¶ added in v0.10.1
func (d *PatchModifier) ModifiedPatchForLines(lineIndices []int, reverse bool, keepOriginalHeader bool) string
func (*PatchModifier) ModifiedPatchForRange ¶ added in v0.10.1
func (*PatchModifier) OriginalPatchLength ¶ added in v0.10.1
func (d *PatchModifier) OriginalPatchLength() int
type PatchParser ¶ added in v0.10.1
type PatchParser struct { Log *logrus.Entry PatchLines []*PatchLine PatchHunks []*PatchHunk HunkStarts []int StageableLines []int // rename to mention we're talking about indexes }
func NewPatchParser ¶ added in v0.10.1
func NewPatchParser(log *logrus.Entry, patch string) (*PatchParser, error)
NewPatchParser builds a new branch list builder
func (*PatchParser) GetHunkContainingLine ¶ added in v0.10.1
func (p *PatchParser) GetHunkContainingLine(lineIndex int, offset int) *PatchHunk
GetHunkContainingLine takes a line index and an offset and finds the hunk which contains the line index, then returns the hunk considering the offset. e.g. if the offset is 1 it will return the next hunk.
func (*PatchParser) GetNextStageableLineIndex ¶ added in v0.10.1
func (p *PatchParser) GetNextStageableLineIndex(currentIndex int) int
GetNextStageableLineIndex takes a line index and returns the line index of the next stageable line note this will actually include the current index if it is stageable
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 Selected bool Branches []*RemoteBranch }
Remote : A git remote
func (*Remote) GetDisplayStrings ¶ added in v0.11.1
GetDisplayStrings returns the display string of a remote
type RemoteBranch ¶ added in v0.11.1
Remote Branch : A git remote branch
func (*RemoteBranch) GetDisplayStrings ¶ added in v0.11.1
func (b *RemoteBranch) GetDisplayStrings(isFocused bool) []string
GetDisplayStrings returns the display string of branch
type RepoInformation ¶ added in v0.7.1
RepoInformation holds some basic information about the repo
type StashEntry ¶
StashEntry : A git stash entry
func (*StashEntry) GetDisplayStrings ¶ added in v0.3.0
func (s *StashEntry) GetDisplayStrings(isFocused bool) []string
GetDisplayStrings returns the display string of branch
Source Files ¶
- branch.go
- branch_list_builder.go
- commit.go
- commit_file.go
- commit_list_builder.go
- dummies.go
- errors.go
- exec_live_default.go
- file.go
- git.go
- git_structs.go
- loading_remotes.go
- loading_tags.go
- os.go
- os_default_platform.go
- patch_manager.go
- patch_modifier.go
- patch_parser.go
- patch_rebases.go
- pull_request.go
- remote.go
- remote_branch.go
- stash_entry.go
- tag.go