From eb5f8c9c00716dd3f55b1f09329309a657c492e0 Mon Sep 17 00:00:00 2001 From: Paul Mackerras Date: Sat, 29 Dec 2007 21:13:34 +1100 Subject: [PATCH] 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 --- gitk | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/gitk b/gitk index b5c9e7a1b4..5022fac83c 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)]