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
}
// 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) {
cmdArgs := NewGitCmd("rev-parse").
Arg("--abbrev-ref").
Arg("--verify").
Arg("HEAD").
cmdArgs := NewGitCmd("branch").
Arg("--show-current").
ToArgv()
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
// 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
// this will return its hash.
// this will return an empty string.
if branchName, err := self.c.Git().Branch.CurrentBranchName(); err == nil {
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
t.Views().Commits().
Lines(
Contains("CI * three"), // don't want the star here
Contains("CI three"),
Contains("CI two"),
Contains("CI branch1 one"),
)