mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-07-30 03:23:08 +03:00
show upstream branch for branch
This commit is contained in:
@ -530,6 +530,11 @@ func (c *GitCommand) GetBranchGraph(branchName string) (string, error) {
|
|||||||
return c.OSCommand.RunCommandWithOutput(fmt.Sprintf("git log --graph --color --abbrev-commit --decorate --date=relative --pretty=medium -100 %s", branchName))
|
return c.OSCommand.RunCommandWithOutput(fmt.Sprintf("git log --graph --color --abbrev-commit --decorate --date=relative --pretty=medium -100 %s", branchName))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *GitCommand) GetUpstreamForBranch(branchName string) (string, error) {
|
||||||
|
output, err := c.OSCommand.RunCommandWithOutput(fmt.Sprintf("git rev-parse --abbrev-ref --symbolic-full-name %s@{u}", branchName))
|
||||||
|
return strings.TrimSpace(output), err
|
||||||
|
}
|
||||||
|
|
||||||
// Ignore adds a file to the gitignore for the repo
|
// Ignore adds a file to the gitignore for the repo
|
||||||
func (c *GitCommand) Ignore(filename string) error {
|
func (c *GitCommand) Ignore(filename string) error {
|
||||||
return c.OSCommand.AppendLineToFile(".gitignore", filename)
|
return c.OSCommand.AppendLineToFile(".gitignore", filename)
|
||||||
|
@ -4,8 +4,10 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"github.com/fatih/color"
|
||||||
"github.com/jesseduffield/gocui"
|
"github.com/jesseduffield/gocui"
|
||||||
"github.com/jesseduffield/lazygit/pkg/commands"
|
"github.com/jesseduffield/lazygit/pkg/commands"
|
||||||
|
"github.com/jesseduffield/lazygit/pkg/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
// list panel functions
|
// list panel functions
|
||||||
@ -53,11 +55,15 @@ func (gui *Gui) handleBranchSelect(g *gocui.Gui, v *gocui.View) error {
|
|||||||
_ = gui.RenderSelectedBranchUpstreamDifferences()
|
_ = gui.RenderSelectedBranchUpstreamDifferences()
|
||||||
}()
|
}()
|
||||||
go func() {
|
go func() {
|
||||||
|
upstream, _ := gui.GitCommand.GetUpstreamForBranch(branch.Name)
|
||||||
|
if strings.Contains(upstream, "no upstream configured for branch") {
|
||||||
|
upstream = gui.Tr.SLocalize("notTrackingRemote")
|
||||||
|
}
|
||||||
graph, err := gui.GitCommand.GetBranchGraph(branch.Name)
|
graph, err := gui.GitCommand.GetBranchGraph(branch.Name)
|
||||||
if err != nil && strings.HasPrefix(graph, "fatal: ambiguous argument") {
|
if err != nil && strings.HasPrefix(graph, "fatal: ambiguous argument") {
|
||||||
graph = gui.Tr.SLocalize("NoTrackingThisBranch")
|
graph = gui.Tr.SLocalize("NoTrackingThisBranch")
|
||||||
}
|
}
|
||||||
_ = gui.renderString(g, "main", graph)
|
_ = gui.renderString(g, "main", fmt.Sprintf("%s → %s\n\n%s", utils.ColoredString(branch.Name, color.FgGreen), utils.ColoredString(upstream, color.FgRed), graph))
|
||||||
}()
|
}()
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -840,6 +840,9 @@ func addEnglish(i18nObject *i18n.Bundle) error {
|
|||||||
}, &i18n.Message{
|
}, &i18n.Message{
|
||||||
ID: "EnterUpstreamWithSlash",
|
ID: "EnterUpstreamWithSlash",
|
||||||
Other: `Enter upstream as '<remote>/<branchname>'`,
|
Other: `Enter upstream as '<remote>/<branchname>'`,
|
||||||
|
}, &i18n.Message{
|
||||||
|
ID: "notTrackingRemote",
|
||||||
|
Other: "(not tracking any remote)",
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user