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

Update worktree model

This commit is contained in:
Jesse Duffield
2023-07-16 11:36:50 +10:00
parent 03f726038e
commit 7682ec029b
4 changed files with 18 additions and 20 deletions

View File

@ -144,14 +144,7 @@ func (self *BranchLoader) obtainBranches() []*models.Branch {
return nil, false
}
branchDir := split[6]
if len(branchDir) > 0 && branchDir != currentDir {
// Ignore line because it is a branch checked out in a different worktree
// Branches which are not checked out will not have a path, so we should not ignore them.
return nil, false
}
return obtainBranch(split), true
return obtainBranch(split, currentDir), true
})
}
@ -183,13 +176,15 @@ var branchFields = []string{
}
// Obtain branch information from parsed line output of getRawBranches()
func obtainBranch(split []string) *models.Branch {
func obtainBranch(split []string, currentDir string) *models.Branch {
headMarker := split[0]
fullName := split[1]
upstreamName := split[2]
track := split[3]
subject := split[4]
commitHash := split[5]
branchDir := split[6]
checkedOutByOtherWorktree := len(branchDir) > 0 && branchDir != currentDir
name := strings.TrimPrefix(fullName, "heads/")
pushables, pullables, gone := parseUpstreamInfo(upstreamName, track)
@ -202,6 +197,7 @@ func obtainBranch(split []string) *models.Branch {
Head: headMarker == "*",
Subject: subject,
CommitHash: commitHash,
CheckedOutByOtherWorktree: checkedOutByOtherWorktree,
}
}

View File

@ -44,7 +44,7 @@ func (self *WorktreeLoader) GetWorktrees() ([]*models.Worktree, error) {
if strings.HasPrefix(splitLine, "worktree ") {
path := strings.SplitN(splitLine, " ", 2)[1]
currentWorktree = &models.Worktree{
Id: len(worktrees),
IsMain: len(worktrees) == 0,
Path: path,
}
} else if strings.HasPrefix(splitLine, "branch ") {

View File

@ -26,6 +26,8 @@ type Branch struct {
Subject string
// commit hash
CommitHash string
CheckedOutByOtherWorktree bool
}
func (b *Branch) FullRefName() string {

View File

@ -6,7 +6,7 @@ import (
// Worktree : A git worktree
type Worktree struct {
Id int
IsMain bool
Path string
Branch string
}
@ -28,5 +28,5 @@ func (w *Worktree) Name() string {
}
func (w *Worktree) Main() bool {
return w.Id == 0
return w.IsMain
}