git-gui: Switch internal blame structure to Tcl lists
authorShawn O. Pearce <spearce@spearce.org>
Sat, 2 Jun 2007 20:01:43 +0000 (16:01 -0400)
committerShawn O. Pearce <spearce@spearce.org>
Wed, 6 Jun 2007 05:26:50 +0000 (01:26 -0400)
commit2f85b7e4b421ab032cc2342808640479a988277f
tree6ed62f08b844d16627a553a4db705c0a632d7e93
parent14c4dfd3d1807885121b5e7b16610e335f824da4
git-gui: Switch internal blame structure to Tcl lists

The Tcl list datatype is significantly faster to work with than
the array type, especially if our indexes are a consecutive set
of numbers, like say line numbers in a file.

This rather large change reorganizes the internal data structure
of the blame viewer to use a proper Tcl list for the annotation
information about a line.  Each line is given its own list within
the larger line_data list, where the indexes correspond to various
facts about that particular line.

The interface does seem to be more responsive this way, with less
time required by Tcl to process blame, and to switch to another
version of the same file.  It could just be a placebo effect, but
either way most Tcl experts perfer lists for this type of work over
arrays.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
lib/blame.tcl