This has been a long time coming, and with this, the SVN add-on could
be considered feature-complete.
(Although we still don't have SVN locking, but I would rather implement
that in a completely custom and de-coupled way, another day.)
Same method as previous commit:
Whenever the active file changes, we set flags on each log file,
indicating whether that file is affected.
This doesn't optimize text-based search filtering, only filtering by
the active file.
Either way, both of these types of filtering are already very fast,
so the speed-up is not as dramatic as the previous improvement.
And for that reason, I probably won't bother also optimizing the
text-based filtering.
It was taking a crazy amount of time to determine whether the SVN log
should even be drawn, and also determining whether each file should
be filtered or not.
Now instead of doing this at drawing time, we store a flag on each
file, and update that whenever the search filter changes,
and after status updates and operations.
Should be safe...? Maybe?
A similar change for SVN log entries might follow,
but the slow-down from that seems nowhere near as bad.