summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xgit-gui.sh4
-rw-r--r--lib/merge.tcl2
-rw-r--r--lib/remote_branch_delete.tcl9
3 files changed, 14 insertions, 1 deletions
diff --git a/git-gui.sh b/git-gui.sh
index 886719a8ce..d96df63ab0 100755
--- a/git-gui.sh
+++ b/git-gui.sh
@@ -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]} {
diff --git a/lib/merge.tcl b/lib/merge.tcl
index 5cded2341c..460d32fa22 100644
--- a/lib/merge.tcl
+++ b/lib/merge.tcl
@@ -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
diff --git a/lib/remote_branch_delete.tcl b/lib/remote_branch_delete.tcl
index f872a3d89d..fcc06d03a1 100644
--- a/lib/remote_branch_delete.tcl
+++ b/lib/remote_branch_delete.tcl
@@ -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} {