1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-07-03 00:57:52 +02:00

Fix the CurrentBranchName function

The function would return "head/branchname" when there was either a tag or a
remote with the same name.

While fixing this we slightly change the semantic of the function (and of
determineCheckedOutBranchName, which calls it): for a detached head it now
returns an empty string rather than the commit hash. I actually think this is
better.
This commit is contained in:
Stefan Haller
2025-06-27 14:13:38 +02:00
parent f95ac6780f
commit 03abdfcfe2
3 changed files with 5 additions and 7 deletions

View File

@ -102,12 +102,10 @@ func (self *BranchCommands) CurrentBranchInfo() (BranchInfo, error) {
}, nil }, nil
} }
// CurrentBranchName get name of current branch // CurrentBranchName get name of current branch. Returns empty string if HEAD is detached.
func (self *BranchCommands) CurrentBranchName() (string, error) { func (self *BranchCommands) CurrentBranchName() (string, error) {
cmdArgs := NewGitCmd("rev-parse"). cmdArgs := NewGitCmd("branch").
Arg("--abbrev-ref"). Arg("--show-current").
Arg("--verify").
Arg("HEAD").
ToArgv() ToArgv()
output, err := self.cmd.New(cmdArgs).DontLog().RunWithOutput() output, err := self.cmd.New(cmdArgs).DontLog().RunWithOutput()

View File

@ -308,7 +308,7 @@ func (self *RefreshHelper) determineCheckedOutBranchName() string {
// In all other cases, get the branch name by asking git what branch is // In all other cases, get the branch name by asking git what branch is
// checked out. Note that if we're on a detached head (for reasons other // checked out. Note that if we're on a detached head (for reasons other
// than rebasing or bisecting, i.e. it was explicitly checked out), then // than rebasing or bisecting, i.e. it was explicitly checked out), then
// this will return its hash. // this will return an empty string.
if branchName, err := self.c.Git().Branch.CurrentBranchName(); err == nil { if branchName, err := self.c.Git().Branch.CurrentBranchName(); err == nil {
return branchName return branchName
} }

View File

@ -26,7 +26,7 @@ var DoNotShowBranchMarkerForHeadCommit = NewIntegrationTest(NewIntegrationTestAr
// Check that the local commits view does show a branch marker for the head commit // Check that the local commits view does show a branch marker for the head commit
t.Views().Commits(). t.Views().Commits().
Lines( Lines(
Contains("CI * three"), // don't want the star here Contains("CI three"),
Contains("CI two"), Contains("CI two"),
Contains("CI branch1 one"), Contains("CI branch1 one"),
) )