[PATCH 6/9] gitk: add keyboard bind for create and remove branch
From: Jens Lidestrom <jens@lidestrom.se>
Signed-off-by: Jens Lidestrom <jens@lidestrom.se>
---
gitk-git/gitk | 25 ++++++++++++++++---------
1 file changed, 16 insertions(+), 9 deletions(-)
diff --git a/gitk-git/gitk b/gitk-git/gitk
index 596977abe89..0d83a72a424 100755
--- a/gitk-git/gitk
+++ b/gitk-git/gitk
@@ -2692,6 +2692,8 @@ proc makewindow {} {
bind $ctext <<Selection>> rehighlight_search_results
bind . <$M1B-t> {resethead [selected_line_id]}
bind . <$M1B-o> {checkout [selected_line_head] [selected_line_id]}
+ bind . <$M1B-m> {rmbranch [selected_line_head] [selected_line_id] 1}
+ bind . <$M1B-b> {mkbranch [selected_line_id]}
for {set i 1} {$i < 10} {incr i} {
bind . <$M1B-Key-$i> [list go_to_parent $i]
}
@@ -2735,7 +2737,7 @@ proc makewindow {} {
makemenu $headctxmenu {
{mc "Check out this branch" command {checkout $headmenuhead $headmenuid}}
{mc "Rename this branch" command mvbranch}
- {mc "Remove this branch" command rmbranch}
+ {mc "Remove this branch" command {rmbranch $headmenuhead $headmenuid 0}}
{mc "Copy branch name" command {clipboard clear; clipboard append $headmenuhead}}
}
$headctxmenu configure -tearoff 0
@@ -3185,6 +3187,8 @@ proc keys {} {
[mc "<F5> Update"]
[mc "<%s-T> Reset current branch to selected commit" $M1T]
[mc "<%s-O> Check out selected commit" $M1T]
+[mc "<%s-C> Create branch on selected commit" $M1T]
+[mc "<%s-M> Remove selected branch" $M1T]
" \
-justify left -bg $bgcolor -border 2 -relief groove
pack $w.m -side top -fill both -padx 2 -pady 2
@@ -9576,13 +9580,13 @@ proc wrcomcan {} {
unset wrcomtop
}
-proc mkbranch {} {
- global NS rowmenuid
+proc mkbranch {id} {
+ global NS
set top .branchdialog
set val(name) ""
- set val(id) $rowmenuid
+ set val(id) $id
set val(command) [list mkbrgo $top]
set ui(title) [mc "Create branch"]
@@ -10054,13 +10058,14 @@ proc readcheckoutstat {fd newhead newheadref newheadid} {
}
}
-proc rmbranch {} {
- global headmenuid headmenuhead mainhead
+proc rmbranch {head id shouldComfirm} {
+ global mainhead
global idheads
-
- set head $headmenuhead
- set id $headmenuid
# this check shouldn't be needed any more...
+ if {$head eq ""} {
+ error_popup [mc "Cannot delete a detached head"]
+ return
+ }
if {$head eq $mainhead} {
error_popup [mc "Cannot delete the currently checked-out branch"]
return
@@ -10070,6 +10075,8 @@ proc rmbranch {} {
# the stuff on this branch isn't on any other branch
if {![confirm_popup [mc "The commits on branch %s aren't on any other\
branch.\nReally delete branch %s?" $head $head]]} return
+ } elseif {$shouldComfirm} {
+ if {![confirm_popup [mc "Really delete branch %s?" $head]]} return
}
nowbusy rmbranch
update
--
gitgitgadget