gitk: Select something appropriate on cherry-pick, branch reset and checkout
authorPaul Mackerras <paulus@samba.org>
Tue, 15 Jan 2008 11:16:32 +0000 (22:16 +1100)
committerPaul Mackerras <paulus@samba.org>
Tue, 15 Jan 2008 11:16:32 +0000 (22:16 +1100)
This makes gitk select the new commit when cherry-picking, and select
the new checked-out head when resetting or checking out a branch.
This feels more natural because the user is usually more interested
in that commit now than whatever was selected before.

Signed-off-by: Paul Mackerras <paulus@samba.org>
gitk

diff --git a/gitk b/gitk
index 8b4c61c56320eb15086c948d1a86c836b5648846..c707c3c1048bfe286a49846b5dcb6835dfacbc55 100755 (executable)
--- a/gitk
+++ b/gitk
@@ -3397,7 +3397,7 @@ proc ordertoken {id} {
        set id [first_real_child $curview,$p]
        if {$id eq {}} {
            # it's a root
-           set tok [lindex $varctok($curview) $a]
+           set tok [lindex $varctok($curview) $varcid($curview,$p)]
            break
        }
        if {[llength $parents($curview,$id)] == 1} {
@@ -7028,6 +7028,7 @@ proc cherrypick {} {
        }
        redrawtags $oldhead
        redrawtags $newhead
+       selbyid $newhead
     }
     notbusy cherrypick
 }
@@ -7072,6 +7073,7 @@ proc resethead {} {
        dohidelocalchanges
        filerun $fd [list readresetstat $fd]
        nowbusy reset [mc "Resetting"]
+       selbyid $rowmenuid
     }
 }
 
@@ -7144,6 +7146,7 @@ proc cobranch {} {
            redrawtags $headids($oldmainhead)
        }
        redrawtags $headmenuid
+       selbyid $headmenuid
     }
     if {$showlocalchanges} {
        dodiffindex