git-gui: Performance improvements for large file sets.
authorShawn O. Pearce <spearce@spearce.org>
Wed, 8 Nov 2006 00:30:54 +0000 (19:30 -0500)
committerShawn O. Pearce <spearce@spearce.org>
Wed, 8 Nov 2006 04:48:20 +0000 (23:48 -0500)
commit93f654df7ec9a509e9362e06821c2af0b2bacc82
tree7ba6f80e53e3de99fa6cee826bb8bd5bf639894b
parent868c8752451c0b75502a0134068f0cfe055eb7ad
git-gui: Performance improvements for large file sets.

Loading 6900 newly added files required about 90 seconds on one system.
This is just far too long to perform a "status" type of operation.
git-status on the same system completes in just 8.2 seconds if it is
redirected to /dev/null.

Most of our performance improvement comes from moving all of the UI
updating out of the main fileevent handlers for the status process.
Instead we are only updating the file_states array and then only doing
the UI update when all states are known and have been finally determined.

The rescan execution is now down to almost 30 seconds for the same case,
a good (but not really all that impressive) improvement.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
git-gui