@matheusbsbs / matheus-bagliano / commits / eb5f8c9c00
Fork 0

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 <paulus@samba.org>

Paul Mackerras committed Dec 29, 2007 at 21:13 UTC eb5f8c9c00716dd3f55b1f09329309a657c492e0
1 file changed +10 -3
gitk
+10 -3
@@ -170,11 +170,18 @@ proc updatecommits {} {
170 global curview viewargs viewfiles viewincl viewinstances
171 global viewactive viewcomplete loginstance tclencoding mainheadid
172 global varcid startmsecs commfd showneartags showlocalchanges leftover
173 + global mainheadid
174
174 - if {$showlocalchanges && [commitinview $mainheadid $curview]} {
175 - dodiffindex
176 - }
175 + set oldmainid $mainheadid
176 rereadrefs
177 + if {$showlocalchanges} {
178 + if {$mainheadid ne $oldmainid} {
179 + dohidelocalchanges
180 + }
181 + if {[commitinview $mainheadid $curview]} {
182 + dodiffindex
183 + }
184 + }
185 set view $curview
186 set commits [exec git rev-parse --default HEAD --revs-only \
187 $viewargs($view)]