diff --git a/pkg/commands/commit.go b/pkg/commands/commit.go index 4d440d5e3..32daeaa23 100644 --- a/pkg/commands/commit.go +++ b/pkg/commands/commit.go @@ -13,3 +13,10 @@ type Commit struct { Author string Date string } + +func (c *Commit) ShortSha() string { + if len(c.Sha) < 8 { + return c.Sha + } + return c.Sha[:8] +} diff --git a/pkg/commands/commit_list_builder.go b/pkg/commands/commit_list_builder.go index a31657b34..cab1b714d 100644 --- a/pkg/commands/commit_list_builder.go +++ b/pkg/commands/commit_list_builder.go @@ -105,7 +105,7 @@ func (c *CommitListBuilder) GetCommits(limit bool) ([]*Commit, error) { // now we can split it up and turn it into commits for _, line := range utils.SplitLines(log) { commit := c.extractCommitFromLine(line) - _, unpushed := unpushedCommits[commit.Sha[:8]] + _, unpushed := unpushedCommits[commit.ShortSha()] commit.Status = map[bool]string{true: "unpushed", false: "pushed"}[unpushed] commits = append(commits, commit) } diff --git a/pkg/gui/presentation/commits.go b/pkg/gui/presentation/commits.go index 740abab78..00b8e7f34 100644 --- a/pkg/gui/presentation/commits.go +++ b/pkg/gui/presentation/commits.go @@ -74,7 +74,7 @@ func getFullDescriptionDisplayStringsForCommit(c *commands.Commit) []string { truncatedAuthor := utils.TruncateWithEllipsis(c.Author, 17) - return []string{shaColor.Sprint(c.Sha[:8]), secondColumnString, yellow.Sprint(truncatedAuthor), tagString + defaultColor.Sprint(c.Name)} + return []string{shaColor.Sprint(c.ShortSha()), secondColumnString, yellow.Sprint(truncatedAuthor), tagString + defaultColor.Sprint(c.Name)} } func getDisplayStringsForCommit(c *commands.Commit) []string { @@ -122,5 +122,5 @@ func getDisplayStringsForCommit(c *commands.Commit) []string { tagString = utils.ColoredStringDirect(strings.Join(c.Tags, " "), tagColor) + " " } - return []string{shaColor.Sprint(c.Sha[:8]), actionString + tagString + defaultColor.Sprint(c.Name)} + return []string{shaColor.Sprint(c.ShortSha()), actionString + tagString + defaultColor.Sprint(c.Name)} } diff --git a/pkg/gui/presentation/reflog_commits.go b/pkg/gui/presentation/reflog_commits.go index 9ec325fb3..a3e39a70d 100644 --- a/pkg/gui/presentation/reflog_commits.go +++ b/pkg/gui/presentation/reflog_commits.go @@ -27,11 +27,11 @@ func GetReflogCommitListDisplayStrings(commits []*commands.Commit, fullDescripti func getFullDescriptionDisplayStringsForReflogCommit(c *commands.Commit) []string { defaultColor := color.New(theme.DefaultTextColor) - return []string{utils.ColoredString(c.Sha[:8], color.FgBlue), utils.ColoredString(c.Date, color.FgMagenta), defaultColor.Sprint(c.Name)} + return []string{utils.ColoredString(c.ShortSha(), color.FgBlue), utils.ColoredString(c.Date, color.FgMagenta), defaultColor.Sprint(c.Name)} } func getDisplayStringsForReflogCommit(c *commands.Commit) []string { defaultColor := color.New(theme.DefaultTextColor) - return []string{utils.ColoredString(c.Sha[:8], color.FgBlue), defaultColor.Sprint(c.Name)} + return []string{utils.ColoredString(c.ShortSha(), color.FgBlue), defaultColor.Sprint(c.Name)} }