summaryrefslogtreecommitdiffstats
path: root/pkg/gui/commits_panel.go
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2019-11-18 09:38:36 +1100
committerJesse Duffield <jessedduffield@gmail.com>2019-11-21 22:07:14 +1100
commit3c1322914518168374be02a78cee968cf1d13730 (patch)
treed31c1064a1101a6081db025328f39789fc3b74c4 /pkg/gui/commits_panel.go
parentcea24c2cf98c48e187900041d9e3bbeb93596019 (diff)
add tags panel
Diffstat (limited to 'pkg/gui/commits_panel.go')
-rw-r--r--pkg/gui/commits_panel.go27
1 files changed, 27 insertions, 0 deletions
diff --git a/pkg/gui/commits_panel.go b/pkg/gui/commits_panel.go
index c29935f14..22ea6fe7e 100644
--- a/pkg/gui/commits_panel.go
+++ b/pkg/gui/commits_panel.go
@@ -584,3 +584,30 @@ func (gui *Gui) handleCreateCommitResetMenu(g *gocui.Gui, v *gocui.View) error {
return gui.createMenu(fmt.Sprintf("%s %s", gui.Tr.SLocalize("resetTo"), commit.Sha), options, len(options), handleMenuPress)
}
+
+func (gui *Gui) handleTagCommit(g *gocui.Gui, v *gocui.View) error {
+ // TODO: bring up menu asking if you want to make a lightweight or annotated tag
+ // if annotated, switch to a subprocess to create the message
+
+ commit := gui.getSelectedCommit(g)
+ if commit == nil {
+ return nil
+ }
+
+ return gui.handleCreateLightweightTag(commit.Sha)
+}
+
+func (gui *Gui) handleCreateLightweightTag(commitSha string) error {
+ return gui.createPromptPanel(gui.g, gui.getCommitsView(), gui.Tr.SLocalize("TagNameTitle"), "", func(g *gocui.Gui, v *gocui.View) error {
+ if err := gui.GitCommand.CreateLightweightTag(v.Buffer(), commitSha); err != nil {
+ return gui.createErrorPanel(g, err.Error())
+ }
+ if err := gui.refreshCommits(g); err != nil {
+ return gui.createErrorPanel(g, err.Error())
+ }
+ if err := gui.refreshTags(); err != nil {
+ return gui.createErrorPanel(g, err.Error())
+ }
+ return gui.handleCommitSelect(g, v)
+ })
+}