summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pkg/commands/git_commands/commit_loader.go10
-rw-r--r--pkg/commands/git_commands/commit_loader_test.go16
-rw-r--r--pkg/commands/git_commands/reflog_commit_loader.go2
-rw-r--r--pkg/commands/git_commands/reflog_commit_loader_test.go18
-rw-r--r--pkg/commands/models/commit.go14
-rw-r--r--pkg/gui/presentation/commits.go11
6 files changed, 42 insertions, 29 deletions
diff --git a/pkg/commands/git_commands/commit_loader.go b/pkg/commands/git_commands/commit_loader.go
index 119566f08..8c85de402 100644
--- a/pkg/commands/git_commands/commit_loader.go
+++ b/pkg/commands/git_commands/commit_loader.go
@@ -89,7 +89,7 @@ func (self *CommitLoader) GetCommits(opts GetCommitsOptions) ([]*models.Commit,
if commit.Sha == firstPushedCommit {
passedFirstPushedCommit = true
}
- commit.Status = map[bool]string{true: "unpushed", false: "pushed"}[!passedFirstPushedCommit]
+ commit.Status = map[bool]models.CommitStatus{true: models.StatusUnpushed, false: models.StatusPushed}[!passedFirstPushedCommit]
commits = append(commits, commit)
return false, nil
})
@@ -312,7 +312,7 @@ func (self *CommitLoader) getInteractiveRebasingCommits() ([]*models.Commit, err
commits = slices.Prepend(commits, &models.Commit{
Sha: t.Commit,
Name: t.Msg,
- Status: "rebasing",
+ Status: models.StatusRebasing,
Action: t.Command.String(),
})
}
@@ -332,7 +332,7 @@ func (self *CommitLoader) commitFromPatch(content string) *models.Commit {
return &models.Commit{
Sha: sha,
Name: name,
- Status: "rebasing",
+ Status: models.StatusRebasing,
}
}
@@ -349,11 +349,11 @@ func (self *CommitLoader) setCommitMergedStatuses(refName string, commits []*mod
if strings.HasPrefix(ancestor, commit.Sha) {
passedAncestor = true
}
- if commit.Status != "pushed" {
+ if commit.Status != models.StatusPushed {
continue
}
if passedAncestor {
- commits[i].Status = "merged"
+ commits[i].Status = models.StatusMerged
}
}
return commits, nil
diff --git a/pkg/commands/git_commands/commit_loader_test.go b/pkg/commands/git_commands/commit_loader_test.go
index 8ba3e6649..dab321753 100644
--- a/pkg/commands/git_commands/commit_loader_test.go
+++ b/pkg/commands/git_commands/commit_loader_test.go
@@ -78,7 +78,7 @@ func TestGetCommits(t *testing.T) {
{
Sha: "0eea75e8c631fba6b58135697835d58ba4c18dbc",
Name: "better typing for rebase mode",
- Status: "unpushed",
+ Status: models.StatusUnpushed,
Action: "",
Tags: []string{},
ExtraInfo: "(HEAD -> better-tests)",
@@ -92,7 +92,7 @@ func TestGetCommits(t *testing.T) {
{
Sha: "b21997d6b4cbdf84b149d8e6a2c4d06a8e9ec164",
Name: "fix logging",
- Status: "pushed",
+ Status: models.StatusPushed,
Action: "",
Tags: []string{},
ExtraInfo: "(origin/better-tests)",
@@ -106,7 +106,7 @@ func TestGetCommits(t *testing.T) {
{
Sha: "e94e8fc5b6fab4cb755f29f1bdb3ee5e001df35c",
Name: "refactor",
- Status: "pushed",
+ Status: models.StatusPushed,
Action: "",
Tags: []string{},
ExtraInfo: "",
@@ -120,7 +120,7 @@ func TestGetCommits(t *testing.T) {
{
Sha: "d8084cd558925eb7c9c38afeed5725c21653ab90",
Name: "WIP",
- Status: "pushed",
+ Status: models.StatusPushed,
Action: "",
Tags: []string{},
ExtraInfo: "",
@@ -134,7 +134,7 @@ func TestGetCommits(t *testing.T) {
{
Sha: "65f910ebd85283b5cce9bf67d03d3f1a9ea3813a",
Name: "WIP",
- Status: "pushed",
+ Status: models.StatusPushed,
Action: "",
Tags: []string{},
ExtraInfo: "",
@@ -148,7 +148,7 @@ func TestGetCommits(t *testing.T) {
{
Sha: "26c07b1ab33860a1a7591a0638f9925ccf497ffa",
Name: "WIP",
- Status: "merged",
+ Status: models.StatusMerged,
Action: "",
Tags: []string{},
ExtraInfo: "",
@@ -162,7 +162,7 @@ func TestGetCommits(t *testing.T) {
{
Sha: "3d4470a6c072208722e5ae9a54bcb9634959a1c5",
Name: "WIP",
- Status: "merged",
+ Status: models.StatusMerged,
Action: "",
Tags: []string{},
ExtraInfo: "",
@@ -176,7 +176,7 @@ func TestGetCommits(t *testing.T) {
{
Sha: "053a66a7be3da43aacdc7aa78e1fe757b82c4dd2",
Name: "refactoring the config struct",
- Status: "merged",
+ Status: models.StatusMerged,
Action: "",
Tags: []string{},
ExtraInfo: "",
diff --git a/pkg/commands/git_commands/reflog_commit_loader.go b/pkg/commands/git_commands/reflog_commit_loader.go
index e2d3a7dad..c5c14fb72 100644
--- a/pkg/commands/git_commands/reflog_commit_loader.go
+++ b/pkg/commands/git_commands/reflog_commit_loader.go
@@ -52,7 +52,7 @@ func (self *ReflogCommitLoader) GetReflogCommits(lastReflogCommit *models.Commit
Sha: fields[0],
Name: fields[2],
UnixTimestamp: int64(unixTimestamp),
- Status: "reflog",
+ Status: models.StatusReflog,
Parents: parents,
}
diff --git a/pkg/commands/git_commands/reflog_commit_loader_test.go b/pkg/commands/git_commands/reflog_commit_loader_test.go
index 7170196e9..a51a40e69 100644
--- a/pkg/commands/git_commands/reflog_commit_loader_test.go
+++ b/pkg/commands/git_commands/reflog_commit_loader_test.go
@@ -51,35 +51,35 @@ func TestGetReflogCommits(t *testing.T) {
{
Sha: "c3c4b66b64c97ffeecde",
Name: "checkout: moving from A to B",
- Status: "reflog",
+ Status: models.StatusReflog,
UnixTimestamp: 1643150483,
Parents: []string{"51baa8c1"},
},
{
Sha: "c3c4b66b64c97ffeecde",
Name: "checkout: moving from B to A",
- Status: "reflog",
+ Status: models.StatusReflog,
UnixTimestamp: 1643150483,
Parents: []string{"51baa8c1"},
},
{
Sha: "c3c4b66b64c97ffeecde",
Name: "checkout: moving from A to B",
- Status: "reflog",
+ Status: models.StatusReflog,
UnixTimestamp: 1643150483,
Parents: []string{"51baa8c1"},
},
{
Sha: "c3c4b66b64c97ffeecde",
Name: "checkout: moving from master to A",
- Status: "reflog",
+ Status: models.StatusReflog,
UnixTimestamp: 1643150483,
Parents: []string{"51baa8c1"},
},
{
Sha: "f4ddf2f0d4be4ccc7efa",
Name: "checkout: moving from A to master",
- Status: "reflog",
+ Status: models.StatusReflog,
UnixTimestamp: 1643149435,
Parents: []string{"51baa8c1"},
},
@@ -95,7 +95,7 @@ func TestGetReflogCommits(t *testing.T) {
lastReflogCommit: &models.Commit{
Sha: "c3c4b66b64c97ffeecde",
Name: "checkout: moving from B to A",
- Status: "reflog",
+ Status: models.StatusReflog,
UnixTimestamp: 1643150483,
Parents: []string{"51baa8c1"},
},
@@ -103,7 +103,7 @@ func TestGetReflogCommits(t *testing.T) {
{
Sha: "c3c4b66b64c97ffeecde",
Name: "checkout: moving from A to B",
- Status: "reflog",
+ Status: models.StatusReflog,
UnixTimestamp: 1643150483,
Parents: []string{"51baa8c1"},
},
@@ -119,7 +119,7 @@ func TestGetReflogCommits(t *testing.T) {
lastReflogCommit: &models.Commit{
Sha: "c3c4b66b64c97ffeecde",
Name: "checkout: moving from B to A",
- Status: "reflog",
+ Status: models.StatusReflog,
UnixTimestamp: 1643150483,
Parents: []string{"51baa8c1"},
},
@@ -128,7 +128,7 @@ func TestGetReflogCommits(t *testing.T) {
{
Sha: "c3c4b66b64c97ffeecde",
Name: "checkout: moving from A to B",
- Status: "reflog",
+ Status: models.StatusReflog,
UnixTimestamp: 1643150483,
Parents: []string{"51baa8c1"},
},
diff --git a/pkg/commands/models/commit.go b/pkg/commands/models/commit.go
index b3a171934..adc7a5a51 100644
--- a/pkg/commands/models/commit.go
+++ b/pkg/commands/models/commit.go
@@ -9,11 +9,23 @@ import (
// Special commit hash for empty tree object
const EmptyTreeCommitHash = "4b825dc642cb6eb9a060e54bf8d69288fbee4904"
+type CommitStatus int
+
+const (
+ StatusNone CommitStatus = iota
+ StatusUnpushed
+ StatusPushed
+ StatusMerged
+ StatusRebasing
+ StatusSelected
+ StatusReflog
+)
+
// Commit : A git commit
type Commit struct {
Sha string
Name string
- Status string // one of "unpushed", "pushed", "merged", "rebasing" or "selected"
+ Status CommitStatus
Action string // one of "", "pick", "edit", "squash", "reword", "drop", "fixup"
Tags []string
ExtraInfo string // something like 'HEAD -> master, tag: v0.15.2'
diff --git a/pkg/gui/presentation/commits.go b/pkg/gui/presentation/commits.go
index 77b946a64..f7d3e1308 100644
--- a/pkg/gui/presentation/commits.go
+++ b/pkg/gui/presentation/commits.go
@@ -346,16 +346,17 @@ func getShaColor(
diffed := commit.Sha == diffName
shaColor := theme.DefaultTextColor
switch commit.Status {
- case "unpushed":
+ case models.StatusUnpushed:
shaColor = style.FgRed
- case "pushed":
+ case models.StatusPushed:
shaColor = style.FgYellow
- case "merged":
+ case models.StatusMerged:
shaColor = style.FgGreen
- case "rebasing":
+ case models.StatusRebasing:
shaColor = style.FgBlue
- case "reflog":
+ case models.StatusReflog:
shaColor = style.FgBlue
+ default:
}
if diffed {