From: Paul Mackerras Date: Sat, 29 Dec 2007 10:13:34 +0000 (+1100) Subject: gitk: Don't try to show local changes from a head that isn't shown X-Git-Tag: v1.5.6-rc0~20^2~35 X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=eb5f8c9c00716dd3f55b1f09329309a657c492e0;p=git.git gitk: Don't try to show local changes from a head that isn't shown When updating the display, if the checked-out head has moved on and isn't currently shown, and there are local changes, we could try to insert a fake row with a parent that isn't displayed, leading to a Tcl error. This is because we check whether the checked-out head is displayed before rereading the references (which is when we discover that the head has moved). This fixes it. Signed-off-by: Paul Mackerras --- diff --git a/gitk b/gitk index b5c9e7a1b..5022fac83 100755 --- a/gitk +++ b/gitk @@ -170,11 +170,18 @@ proc updatecommits {} { global curview viewargs viewfiles viewincl viewinstances global viewactive viewcomplete loginstance tclencoding mainheadid global varcid startmsecs commfd showneartags showlocalchanges leftover + global mainheadid - if {$showlocalchanges && [commitinview $mainheadid $curview]} { - dodiffindex - } + set oldmainid $mainheadid rereadrefs + if {$showlocalchanges} { + if {$mainheadid ne $oldmainid} { + dohidelocalchanges + } + if {[commitinview $mainheadid $curview]} { + dodiffindex + } + } set view $curview set commits [exec git rev-parse --default HEAD --revs-only \ $viewargs($view)]