From: Jens Lidestrom <jens@xxxxxxxxxxxx> Signed-off-by: Jens Lidestrom <jens@xxxxxxxxxxxx> --- 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