lp:~jameinel/bzr/2.0.1-faster-get-deltas-bug374730
- Get this branch:
- bzr branch lp:~jameinel/bzr/2.0.1-faster-get-deltas-bug374730
Branch merges
Branch information
Recent revisions
- 4683. By John A Meinel
-
We can check if old matches first, which gives us a couple more hits.
Down to 49s. Not the <36s I'd like to be at, though... - 4681. By John A Meinel
-
Refactor the tests a bit.
The time is down a little (1m13s), but it seems to be missing one ancestry
in bzr.dev's log of 'tools'. - 4680. By John A Meinel
-
The changes_from() implementation fails the include_parents test.
The previous get_deltas_for_revisions( ) implementation would include
mv foo bar
if you did
bzr log bar/file
(It would show you changes to a parent dir, when logging a child.)
It is arguable either way, but I think we want to preserve this behavior.Also note that this 'changes_from' implementation is taking 1m35s up from the 36s
I was seeing with the simpler implementation.
My guess is that the paths2ids overhead is significant. - 4679. By John A Meinel
-
implement CHKInventoryRep
ository. get_delta_ for_revisions This first implementation just maps file_ids => paths, and then calls
tree.changes_from().
This isn't ideal for a few reasons, but it should be better than what we've
had. - 4676. By John A Meinel
-
I didn't mean to change get_deltas_
for_revisions yet. I didn't implement support for specific_fileids, which means the results
were probably wrong. However, it does show that going through iter_changes()
first, and then filtering second is going to be vastly faster.
(Time was 38s vs 5m+ for 'bzr log tools')
What is surprising is that 'time bzr log -v' which should just be the simple
iter_changes route, was >2min. So something isn't quite right with those
numbers. - 4675. By John A Meinel
-
Implement CHKInventory.
filter( ) on the new subset. With this implementation, we can probably filter() without reading all nodes,
which is the goal of the exercise. - 4674. By John A Meinel
-
Catch a corner case that we were missing.
The CHKInventory tests were passing, but failed for test_inv because
we were passing None to _getitems(). That only failed for InternalNodes,
but we were using a structure that didn't have internal nodes.
So now the test is parameterized on a small CHKInventory page size
to force those things out into the open.
Branch metadata
- Branch format:
- Branch format 7
- Repository format:
- Bazaar repository format 2a (needs bzr 1.16 or later)
- Stacked on:
- lp:bzr