summaryrefslogtreecommitdiffstats
path: root/pkg/commands
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/commands')
-rw-r--r--pkg/commands/branch_list_builder.go9
-rw-r--r--pkg/commands/commit.go16
-rw-r--r--pkg/commands/commit_list_builder.go19
-rw-r--r--pkg/commands/git.go18
4 files changed, 28 insertions, 34 deletions
diff --git a/pkg/commands/branch_list_builder.go b/pkg/commands/branch_list_builder.go
index f7949d2bc..1430bbf92 100644
--- a/pkg/commands/branch_list_builder.go
+++ b/pkg/commands/branch_list_builder.go
@@ -2,7 +2,6 @@ package commands
import (
"regexp"
- "strconv"
"strings"
"github.com/jesseduffield/lazygit/pkg/utils"
@@ -145,13 +144,7 @@ func (b *BranchListBuilder) obtainReflogBranches() []*Branch {
reflogBranches := make([]*Branch, 0, len(b.ReflogCommits))
for _, commit := range b.ReflogCommits {
if match := re.FindStringSubmatch(commit.Name); len(match) == 3 {
- timestamp, err := strconv.Atoi(commit.Date)
- if err != nil {
- b.Log.Errorf("couldn't parse reflog date: %s", commit.Date)
- continue
- }
-
- recency := utils.UnixToTimeAgo(timestamp)
+ recency := utils.UnixToTimeAgo(commit.UnixTimestamp)
for _, branchName := range match[1:] {
if !foundBranchesMap[branchName] {
foundBranchesMap[branchName] = true
diff --git a/pkg/commands/commit.go b/pkg/commands/commit.go
index a400da928..ea4192b33 100644
--- a/pkg/commands/commit.go
+++ b/pkg/commands/commit.go
@@ -2,14 +2,14 @@ package commands
// Commit : A git commit
type Commit struct {
- Sha string
- Name string
- Status string // one of "unpushed", "pushed", "merged", "rebasing" or "selected"
- Action string // one of "", "pick", "edit", "squash", "reword", "drop", "fixup"
- Tags []string
- ExtraInfo string // something like 'HEAD -> master, tag: v0.15.2'
- Author string
- Date string
+ Sha string
+ Name string
+ Status string // one of "unpushed", "pushed", "merged", "rebasing" or "selected"
+ Action string // one of "", "pick", "edit", "squash", "reword", "drop", "fixup"
+ Tags []string
+ ExtraInfo string // something like 'HEAD -> master, tag: v0.15.2'
+ Author string
+ UnixTimestamp int64
}
func (c *Commit) ShortSha() string {
diff --git a/pkg/commands/commit_list_builder.go b/pkg/commands/commit_list_builder.go
index a39ab7593..b48c305c4 100644
--- a/pkg/commands/commit_list_builder.go
+++ b/pkg/commands/commit_list_builder.go
@@ -7,6 +7,7 @@ import (
"os/exec"
"path/filepath"
"regexp"
+ "strconv"
"strings"
"github.com/fatih/color"
@@ -56,7 +57,7 @@ func (c *CommitListBuilder) extractCommitFromLine(line string) *Commit {
split := strings.Split(line, SEPARATION_CHAR)
sha := split[0]
- date := split[1]
+ unixTimestamp := split[1]
author := split[2]
extraInfo := strings.TrimSpace(split[3])
message := strings.Join(split[4:], SEPARATION_CHAR)
@@ -70,13 +71,15 @@ func (c *CommitListBuilder) extractCommitFromLine(line string) *Commit {
}
}
+ unitTimestampInt, _ := strconv.Atoi(unixTimestamp)
+
return &Commit{
- Sha: sha,
- Name: message,
- Tags: tags,
- ExtraInfo: extraInfo,
- Date: date,
- Author: author,
+ Sha: sha,
+ Name: message,
+ Tags: tags,
+ ExtraInfo: extraInfo,
+ UnixTimestamp: int64(unitTimestampInt),
+ Author: author,
}
}
@@ -305,5 +308,5 @@ func (c *CommitListBuilder) getLogCmd(limit bool) *exec.Cmd {
limitFlag = "-300"
}
- return c.OSCommand.ExecutableFromString(fmt.Sprintf("git log --oneline --pretty=format:\"%%H%s%%ar%s%%aN%s%%d%s%%s\" %s --abbrev=%d", SEPARATION_CHAR, SEPARATION_CHAR, SEPARATION_CHAR, SEPARATION_CHAR, limitFlag, 20))
+ return c.OSCommand.ExecutableFromString(fmt.Sprintf("git log --oneline --pretty=format:\"%%H%s%%at%s%%aN%s%%d%s%%s\" %s --abbrev=%d --date=unix ", SEPARATION_CHAR, SEPARATION_CHAR, SEPARATION_CHAR, SEPARATION_CHAR, limitFlag, 20))
}
diff --git a/pkg/commands/git.go b/pkg/commands/git.go
index 42b075915..803cfe2d4 100644
--- a/pkg/commands/git.go
+++ b/pkg/commands/git.go
@@ -484,11 +484,7 @@ func (c *GitCommand) GitStatus() (string, error) {
// IsInMergeState states whether we are still mid-merge
func (c *GitCommand) IsInMergeState() (bool, error) {
- output, err := c.OSCommand.RunCommandWithOutput("git status --untracked-files=all")
- if err != nil {
- return false, err
- }
- return strings.Contains(output, "conclude merge") || strings.Contains(output, "unmerged paths"), nil
+ return c.OSCommand.FileExists(fmt.Sprintf("%s/MERGE_HEAD", c.DotGitDir))
}
// RebaseMode returns "" for non-rebase mode, "normal" for normal rebase
@@ -1133,14 +1129,16 @@ func (c *GitCommand) GetNewReflogCommits(lastReflogCommit *Commit) ([]*Commit, e
return false, nil
}
+ unixTimestamp, _ := strconv.Atoi(match[2])
+
commit := &Commit{
- Sha: match[1],
- Name: match[3],
- Date: match[2],
- Status: "reflog",
+ Sha: match[1],
+ Name: match[3],
+ UnixTimestamp: int64(unixTimestamp),
+ Status: "reflog",
}
- if lastReflogCommit != nil && commit.Sha == lastReflogCommit.Sha && commit.Date == lastReflogCommit.Date {
+ if lastReflogCommit != nil && commit.Sha == lastReflogCommit.Sha && commit.UnixTimestamp == lastReflogCommit.UnixTimestamp {
// after this point we already have these reflogs loaded so we'll simply return the new ones
return true, nil
}