cleanup now that we're always using the same diff command
This commit is contained in:
@@ -5,20 +5,6 @@ import (
|
||||
"github.com/jesseduffield/lazygit/pkg/commands"
|
||||
)
|
||||
|
||||
const (
|
||||
// these are the possible ref types for refs that you can view files of.
|
||||
// for local commits, we're allowed to build a patch and do things involving rebasing
|
||||
// with that patch
|
||||
REF_TYPE_LOCAL_COMMIT = iota
|
||||
|
||||
// for other kinds of commits like reflog commits, we can't do anything rebasey
|
||||
REF_TYPE_OTHER_COMMIT
|
||||
|
||||
// for stash entries we can't do anything rebasey, and the command for
|
||||
// obtaining the files is slightly different
|
||||
REF_TYPE_STASH
|
||||
)
|
||||
|
||||
func (gui *Gui) getSelectedCommitFile() *commands.CommitFile {
|
||||
selectedLine := gui.State.Panels.CommitFiles.SelectedLineIdx
|
||||
if selectedLine == -1 {
|
||||
@@ -96,25 +82,10 @@ func (gui *Gui) refreshCommitFilesView() error {
|
||||
return err
|
||||
}
|
||||
|
||||
isStash := gui.State.Panels.CommitFiles.refType == REF_TYPE_STASH
|
||||
refName := gui.State.Panels.CommitFiles.refName
|
||||
diffing := gui.State.Modes.Diffing
|
||||
|
||||
var files []*commands.CommitFile
|
||||
var err error
|
||||
if diffing.Active() {
|
||||
from := diffing.Ref
|
||||
to := refName
|
||||
|
||||
if diffing.Reverse {
|
||||
from, to = to, from
|
||||
}
|
||||
|
||||
files, err = gui.GitCommand.GetFilesInDiff(from, to, refName, gui.GitCommand.PatchManager)
|
||||
} else {
|
||||
files, err = gui.GitCommand.GetFilesInRef(refName, isStash, gui.GitCommand.PatchManager)
|
||||
}
|
||||
to := gui.State.Panels.CommitFiles.refName
|
||||
from, reverse := gui.getFromAndReverseArgsForDiff(to)
|
||||
|
||||
files, err := gui.GitCommand.GetFilesInDiff(from, to, reverse, gui.GitCommand.PatchManager)
|
||||
if err != nil {
|
||||
return gui.surfaceError(err)
|
||||
}
|
||||
@@ -187,7 +158,7 @@ func (gui *Gui) handleToggleFileForPatch(g *gocui.Gui, v *gocui.View) error {
|
||||
}
|
||||
|
||||
func (gui *Gui) startPatchManager() error {
|
||||
canRebase := gui.State.Panels.CommitFiles.refType == REF_TYPE_LOCAL_COMMIT
|
||||
canRebase := gui.State.Panels.CommitFiles.canRebase
|
||||
|
||||
to := gui.State.Panels.CommitFiles.refName
|
||||
from, reverse := gui.getFromAndReverseArgsForDiff(to)
|
||||
@@ -243,14 +214,14 @@ func (gui *Gui) enterCommitFile(selectedLineIdx int) error {
|
||||
return enterTheFile(selectedLineIdx)
|
||||
}
|
||||
|
||||
func (gui *Gui) switchToCommitFilesContext(refName string, refType int, context Context, windowName string) error {
|
||||
func (gui *Gui) switchToCommitFilesContext(refName string, canRebase bool, context Context, windowName string) error {
|
||||
// sometimes the commitFiles view is already shown in another window, so we need to ensure that window
|
||||
// no longer considers the commitFiles view as its main view.
|
||||
gui.resetWindowForView("commitFiles")
|
||||
|
||||
gui.State.Panels.CommitFiles.SelectedLineIdx = 0
|
||||
gui.State.Panels.CommitFiles.refName = refName
|
||||
gui.State.Panels.CommitFiles.refType = refType
|
||||
gui.State.Panels.CommitFiles.canRebase = canRebase
|
||||
gui.Contexts.CommitFiles.Context.SetParentContext(context)
|
||||
gui.Contexts.CommitFiles.Context.SetWindowName(windowName)
|
||||
|
||||
|
||||
@@ -420,7 +420,7 @@ func (gui *Gui) handleViewCommitFiles() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
return gui.switchToCommitFilesContext(commit.Sha, REF_TYPE_LOCAL_COMMIT, gui.Contexts.BranchCommits.Context, "commits")
|
||||
return gui.switchToCommitFilesContext(commit.Sha, true, gui.Contexts.BranchCommits.Context, "commits")
|
||||
}
|
||||
|
||||
func (gui *Gui) hasCommit(commits []*commands.Commit, target string) (int, bool) {
|
||||
|
||||
@@ -194,8 +194,8 @@ type commitFilesPanelState struct {
|
||||
|
||||
// this is the SHA of the commit or the stash index of the stash.
|
||||
// Not sure if ref is actually the right word here
|
||||
refName string
|
||||
refType int // eg REF_TYPE_LOCAL_COMMIT
|
||||
refName string
|
||||
canRebase bool
|
||||
}
|
||||
|
||||
type panelStates struct {
|
||||
|
||||
@@ -119,5 +119,5 @@ func (gui *Gui) handleViewReflogCommitFiles() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
return gui.switchToCommitFilesContext(commit.Sha, REF_TYPE_OTHER_COMMIT, gui.Contexts.ReflogCommits.Context, "commits")
|
||||
return gui.switchToCommitFilesContext(commit.Sha, false, gui.Contexts.ReflogCommits.Context, "commits")
|
||||
}
|
||||
|
||||
@@ -135,5 +135,5 @@ func (gui *Gui) handleViewStashFiles() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
return gui.switchToCommitFilesContext(stashEntry.RefName(), REF_TYPE_STASH, gui.Contexts.Stash.Context, "stash")
|
||||
return gui.switchToCommitFilesContext(stashEntry.RefName(), false, gui.Contexts.Stash.Context, "stash")
|
||||
}
|
||||
|
||||
@@ -74,7 +74,7 @@ func (gui *Gui) handleViewSubCommitFiles() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
return gui.switchToCommitFilesContext(commit.Sha, REF_TYPE_OTHER_COMMIT, gui.Contexts.SubCommits.Context, "branches")
|
||||
return gui.switchToCommitFilesContext(commit.Sha, false, gui.Contexts.SubCommits.Context, "branches")
|
||||
}
|
||||
|
||||
func (gui *Gui) switchToSubCommitsContext(refName string) error {
|
||||
|
||||
Reference in New Issue
Block a user