git-gui: always default to the last merged branch in remote delete

This is useful if you are directly working together with other
developers pushing feature branches on a shared remote. You typically
push feature branches to the remote so others can review. Once they are
satisfied and the branch is merged into the main branch it needs to be
deleted on the server.

Since we did not yet have a preselected default branch in the remote
delete dialog lets use the last merged branch if it is found on the
server.

Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
This commit is contained in:
Heiko Voigt 2011-02-12 17:44:58 +01:00 committed by Pat Thoyts
parent 8b92658206
commit 9d04278a4d
3 changed files with 14 additions and 1 deletions

View File

@ -139,6 +139,10 @@ if {$_trace >= 0} {
set _trace 0
}
# variable for the last merged branch (useful for a default when deleting
# branches).
set _last_merged_branch {}
proc shellpath {} {
global _shellpath env
if {[string match @@* $_shellpath]} {

View File

@ -83,6 +83,7 @@ method _visualize {} {
method _start {} {
global HEAD current_branch remote_url
global _last_merged_branch
set name [_rev $this]
if {$name eq {}} {
@ -109,6 +110,7 @@ method _start {} {
regsub ^refs/heads/ $branch {} branch
puts $fh "$cmit\t\tbranch '$branch' of $remote"
close $fh
set _last_merged_branch $branch
set cmd [list git]
lappend cmd merge

View File

@ -251,7 +251,7 @@ method _write_url {args} { set urltype url }
method _write_check_head {args} { set checktype head }
method _write_head_list {args} {
global current_branch
global current_branch _last_merged_branch
$head_m delete 0 end
foreach abr $head_list {
@ -267,6 +267,13 @@ method _write_head_list {args} {
set check_head $current_branch
}
}
set lmb [lsearch -exact -sorted $head_list $_last_merged_branch]
if {$lmb >= 0} {
$w.heads.l conf -state normal
$w.heads.l select set $lmb
$w.heads.l yview $lmb
$w.heads.l conf -state disabled
}
}
method _write_urltype {args} {