HI Craig.
Let me first explain why qlog dir is so slow. The list of files in a
dir can change at each revision. Files can get added, and removed, and
moved in or out of the dir, so it has to load the inventory for every
revision, to get a list of the files in the dir at that revision.
bzr log dir is just doing this for the mainline revisions. bzr qlog
has to do this for all revisions. As I was writing this I was thinking
I could change qlog to first look at the main line, and then the other
revisions, but after I read the code, I remembered that this is not
possible.
I also thought that 2a format has a big performance improvement in
loading inventories, but quick wall clock timing of qlog dir showed it
is slower on a 2a repo. I need to investigate why.
So the other thing that seams to be irritating you is the ui lock up...
* Yes, we load in chucks. You can experiment with changing the chunk
size. lib/loggraphprovider.py line 792 (method load_filter_file_id)
* A threaded approach will solve the ui lock up problem. But this is a
huge undertaking.
There are other things I need to look at. Will do when I have some time...
Gary
This is because bzr log is doing a delta between the inventory and the
inventory of the rev -1.
qlog just looks for text id's, which is overall faster. May be we can
first do deltas for the main line, and then look for text id's for all
other revisions. This will be slower over all, but will give you
useful info quicker.
Maybe we could do just the main line first, and only filter the other
revisions that are on screen...
Please try the latest version of trunk. I've changed something to keep
the ui more responsive. Please let me know if this is an improvement.
Note that this improvement was on a 2a branch. It speed stays the same
for 1.9 branches.