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

support detached heads when showing the selected branch

This commit is contained in:
Jesse Duffield
2019-11-17 12:07:36 +11:00
parent 6b7aaeca45
commit 55ff0c0dee
5 changed files with 39 additions and 7 deletions

View File

@ -6,6 +6,7 @@ import (
"os"
"os/exec"
"path/filepath"
"regexp"
"strings"
"time"
@ -21,6 +22,13 @@ import (
gogit "gopkg.in/src-d/go-git.v4"
)
// this takes something like:
// * (HEAD detached at 264fc6f5)
// remotes
// and returns '264fc6f5' as the second match
const CurrentBranchNameRegex = `(?m)^\*.*?([^ ]*?)\)?$`
func verifyInGitRepo(runCmd func(string) error) error {
return runCmd("git status")
}
@ -325,8 +333,11 @@ func (c *GitCommand) NewBranch(name string) error {
// CurrentBranchName is a function.
func (c *GitCommand) CurrentBranchName() (string, error) {
branchName, err := c.OSCommand.RunCommandWithOutput("git symbolic-ref --short HEAD")
if err != nil {
branchName, err = c.OSCommand.RunCommandWithOutput("git rev-parse --short HEAD")
if err != nil || branchName == "HEAD\n" {
output, err := c.OSCommand.RunCommandWithOutput("git branch --contains")
re := regexp.MustCompile(CurrentBranchNameRegex)
match := re.FindStringSubmatch(output)
branchName = match[1]
if err != nil {
return "", err
}