1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-03-21 21:47:32 +02:00

Apply correct styling to root commit in graph

The root commit is special in that it has no parents. So we need to add a pipe that's headed for a commit
that doesn't actually exist i.e. the mythical empty tree commit. We're using the actual hash of that
pseudo-commit, but it's not being read anywhere.
This commit is contained in:
Jesse Duffield 2023-06-01 21:38:16 +10:00
parent c9136538b5
commit 5df27c61ed
2 changed files with 22 additions and 1 deletions

View File

@ -139,7 +139,7 @@ func getNextPipes(prevPipes []*Pipe, commit *models.Commit, getStyle func(c *mod
// a traversed spot is one where a current pipe is starting on, ending on, or passing through
traversedSpots := set.New[int]()
if len(commit.Parents) > 0 {
if len(commit.Parents) > 0 { // merge commit
newPipes = append(newPipes, &Pipe{
fromPos: pos,
toPos: pos,
@ -148,6 +148,15 @@ func getNextPipes(prevPipes []*Pipe, commit *models.Commit, getStyle func(c *mod
kind: STARTS,
style: getStyle(commit),
})
} else if len(commit.Parents) == 0 { // root commit
newPipes = append(newPipes, &Pipe{
fromPos: pos,
toPos: pos,
fromSha: commit.Sha,
toSha: models.EmptyTreeCommitHash,
kind: STARTS,
style: getStyle(commit),
})
}
traversedSpotsForContinuingPipes := set.New[int]()

View File

@ -509,6 +509,18 @@ func TestGetNextPipes(t *testing.T) {
{fromPos: 1, toPos: 1, fromSha: "d", toSha: "e", kind: STARTS, style: style.FgDefault},
},
},
{
prevPipes: []*Pipe{
{fromPos: 0, toPos: 0, fromSha: "a", toSha: "root", kind: TERMINATES, style: style.FgDefault},
},
commit: &models.Commit{
Sha: "root",
Parents: []string{},
},
expected: []*Pipe{
{fromPos: 1, toPos: 1, fromSha: "root", toSha: models.EmptyTreeCommitHash, kind: STARTS, style: style.FgDefault},
},
},
}
for _, test := range tests {