summaryrefslogtreecommitdiffstats
path: root/pkg/gui/remote_branches_panel.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/gui/remote_branches_panel.go')
-rw-r--r--pkg/gui/remote_branches_panel.go21
1 files changed, 21 insertions, 0 deletions
diff --git a/pkg/gui/remote_branches_panel.go b/pkg/gui/remote_branches_panel.go
index c1534c89a..e4dfefa26 100644
--- a/pkg/gui/remote_branches_panel.go
+++ b/pkg/gui/remote_branches_panel.go
@@ -119,3 +119,24 @@ func (gui *Gui) handleRebaseOntoRemoteBranch(g *gocui.Gui, v *gocui.View) error
selectedBranchName := gui.getSelectedRemoteBranch().Name
return gui.handleRebaseOntoBranch(selectedBranchName)
}
+
+func (gui *Gui) handleSetBranchUpstream(g *gocui.Gui, v *gocui.View) error {
+ selectedBranch := gui.getSelectedRemoteBranch()
+ checkedOutBranch := gui.getCheckedOutBranch()
+
+ message := gui.Tr.TemplateLocalize(
+ "SetUpstreamMessage",
+ Teml{
+ "checkedOut": checkedOutBranch.Name,
+ "selected": selectedBranch.RemoteName + "/" + selectedBranch.Name,
+ },
+ )
+
+ return gui.createConfirmationPanel(g, v, true, gui.Tr.SLocalize("SetUpstreamTitle"), message, func(*gocui.Gui, *gocui.View) error {
+ if err := gui.GitCommand.SetBranchUpstream(selectedBranch.RemoteName, selectedBranch.Name, checkedOutBranch.Name); err != nil {
+ return err
+ }
+
+ return gui.refreshSidePanels(gui.g)
+ }, nil)
+}