Simplify the RebaseMode enum

- Remove REBASE_MODE_NORMAL. It is not the "normal" mode anyway, rather a legacy
mode; we have removed support for it in eb0f7e3d02, so there's no point in
representing it in the enum.
- Remove distinction between REBASE_MODE_REBASING and REBASE_MODE_INTERACTIVE;
these are the same now.
- Rename StatusCommands.IsInInteractiveRebase to IsInRebase.
- Remove StatusCommands.RebaseMode; use StatusCommands.IsInRebase instead.
This commit is contained in:
Stefan Haller 2024-06-10 16:52:02 +02:00
parent 37f835244d
commit 1a73697546
4 changed files with 11 additions and 30 deletions

View file

@ -487,7 +487,7 @@ func TestCommitLoader_getConflictedCommitImpl(t *testing.T) {
builder := &CommitLoader{ builder := &CommitLoader{
Common: common, Common: common,
cmd: oscommands.NewDummyCmdObjBuilder(oscommands.NewFakeRunner(t)), cmd: oscommands.NewDummyCmdObjBuilder(oscommands.NewFakeRunner(t)),
getWorkingTreeState: func() enums.RebaseMode { return enums.REBASE_MODE_INTERACTIVE }, getWorkingTreeState: func() enums.RebaseMode { return enums.REBASE_MODE_REBASING },
dotGitDir: ".git", dotGitDir: ".git",
readFile: func(filename string) ([]byte, error) { readFile: func(filename string) ([]byte, error) {
return []byte(""), nil return []byte(""), nil

View file

@ -20,24 +20,9 @@ func NewStatusCommands(
} }
} }
// RebaseMode returns "" for non-rebase mode, "normal" for normal rebase
// and "interactive" for interactive rebase
func (self *StatusCommands) RebaseMode() (enums.RebaseMode, error) {
ok, err := self.IsInNormalRebase()
if err == nil && ok {
return enums.REBASE_MODE_NORMAL, nil
}
ok, err = self.IsInInteractiveRebase()
if err == nil && ok {
return enums.REBASE_MODE_INTERACTIVE, err
}
return enums.REBASE_MODE_NONE, err
}
func (self *StatusCommands) WorkingTreeState() enums.RebaseMode { func (self *StatusCommands) WorkingTreeState() enums.RebaseMode {
rebaseMode, _ := self.RebaseMode() isInRebase, _ := self.IsInRebase()
if rebaseMode != enums.REBASE_MODE_NONE { if isInRebase {
return enums.REBASE_MODE_REBASING return enums.REBASE_MODE_REBASING
} }
merging, _ := self.IsInMergeState() merging, _ := self.IsInMergeState()
@ -51,12 +36,12 @@ func (self *StatusCommands) IsBareRepo() bool {
return self.repoPaths.isBareRepo return self.repoPaths.isBareRepo
} }
func (self *StatusCommands) IsInNormalRebase() (bool, error) { func (self *StatusCommands) IsInRebase() (bool, error) {
return self.os.FileExists(filepath.Join(self.repoPaths.WorktreeGitDirPath(), "rebase-apply")) exists, err := self.os.FileExists(filepath.Join(self.repoPaths.WorktreeGitDirPath(), "rebase-merge"))
if err == nil && exists {
return true, nil
} }
return self.os.FileExists(filepath.Join(self.repoPaths.WorktreeGitDirPath(), "rebase-apply"))
func (self *StatusCommands) IsInInteractiveRebase() (bool, error) {
return self.os.FileExists(filepath.Join(self.repoPaths.WorktreeGitDirPath(), "rebase-merge"))
} }
// IsInMergeState states whether we are still mid-merge // IsInMergeState states whether we are still mid-merge

View file

@ -5,10 +5,6 @@ type RebaseMode int
const ( const (
// this means we're neither rebasing nor merging // this means we're neither rebasing nor merging
REBASE_MODE_NONE RebaseMode = iota REBASE_MODE_NONE RebaseMode = iota
// this means normal rebase as opposed to interactive rebase
REBASE_MODE_NORMAL
REBASE_MODE_INTERACTIVE
// REBASE_MODE_REBASING is a general state that captures both REBASE_MODE_NORMAL and REBASE_MODE_INTERACTIVE
REBASE_MODE_REBASING REBASE_MODE_REBASING
REBASE_MODE_MERGING REBASE_MODE_MERGING
) )
@ -18,5 +14,5 @@ func (self RebaseMode) IsMerging() bool {
} }
func (self RebaseMode) IsRebasing() bool { func (self RebaseMode) IsRebasing() bool {
return self == REBASE_MODE_INTERACTIVE || self == REBASE_MODE_NORMAL || self == REBASE_MODE_REBASING return self == REBASE_MODE_REBASING
} }

View file

@ -77,7 +77,7 @@ func (self *CherryPickHelper) Paste() error {
"numCommits": strconv.Itoa(len(self.getData().CherryPickedCommits)), "numCommits": strconv.Itoa(len(self.getData().CherryPickedCommits)),
}), }),
HandleConfirm: func() error { HandleConfirm: func() error {
isInRebase, err := self.c.Git().Status.IsInInteractiveRebase() isInRebase, err := self.c.Git().Status.IsInRebase()
if err != nil { if err != nil {
return err return err
} }
@ -107,7 +107,7 @@ func (self *CherryPickHelper) Paste() error {
// be because there were conflicts. Don't clear the copied // be because there were conflicts. Don't clear the copied
// commits in this case, since we might want to abort and // commits in this case, since we might want to abort and
// try pasting them again. // try pasting them again.
isInRebase, err = self.c.Git().Status.IsInInteractiveRebase() isInRebase, err = self.c.Git().Status.IsInRebase()
if err != nil { if err != nil {
return err return err
} }