gitk: Clear array 'commitinfo' on reload
[gitweb.git] / gitk
diff --git a/gitk b/gitk
index 4d531b335a9a7d3f1448110c02c6141a20dc817a..07e21d42de42d4506a616957328ddca47cc5375b 100755 (executable)
--- a/gitk
+++ b/gitk
@@ -588,7 +588,7 @@ proc updatecommits {} {
 proc reloadcommits {} {
     global curview viewcomplete selectedline currentid thickerline
     global showneartags treediffs commitinterest cached_commitrow
-    global targetid
+    global targetid commitinfo
 
     set selid {}
     if {$selectedline ne {}} {
@@ -609,6 +609,7 @@ proc reloadcommits {} {
        getallcommits
     }
     clear_display
+    unset -nocomplain commitinfo
     unset -nocomplain commitinterest
     unset -nocomplain cached_commitrow
     unset -nocomplain targetid
@@ -2406,7 +2407,7 @@ proc makewindow {} {
 
     set ctext .bleft.bottom.ctext
     text $ctext -background $bgcolor -foreground $fgcolor \
-       -state disabled -font textfont \
+       -state disabled -undo 0 -font textfont \
        -yscrollcommand scrolltext -wrap none \
        -xscrollcommand ".bleft.bottom.sbhorizontal set"
     if {$have_tk85} {
@@ -8073,7 +8074,11 @@ proc getblobdiffline {bdf ids} {
     $ctext conf -state normal
     while {[incr nr] <= 1000 && [gets $bdf line] >= 0} {
        if {$ids != $diffids || $bdf != $blobdifffd($ids)} {
+           # Older diff read. Abort it.
            catch {close $bdf}
+           if {$ids != $diffids} {
+               array unset blobdifffd $ids
+           }
            return 0
        }
        parseblobdiffline $ids $line
@@ -8082,6 +8087,7 @@ proc getblobdiffline {bdf ids} {
     blobdiffmaybeseehere [eof $bdf]
     if {[eof $bdf]} {
        catch {close $bdf}
+       array unset blobdifffd $ids
        return 0
     }
     return [expr {$nr >= 1000? 2: 1}]