bzr log slower with packs
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Bazaar |
Confirmed
|
Medium
|
Unassigned |
Bug Description
With Branch6 we no longer have the mainline revisions cached in a single file.
Which means that for 'bzr log' to determine the mainline of the branch, it has to iterate the history from the tip revision.
Packs make iterating history slower (at the moment) because they have more round trips to get the parents of each node, rather than buffering the revision graph.
The way we have defined our log display algorithm makes it difficult to show without loading the whole graph. "tsort.merge_sort" is defined to work on the whole graph. If our graph recorded children of nodes as well as recording ancestors of nodes, it might be easier to determine that it isn't possible for this node to have been merged before now.
Otherwise you have to keep searching backwards because an earlier node may have merged it. (Note, you *can* stop once you reach an ancestor of this node, since you can't merge a node into its own ancestor.)
There may also be a way to cache other information about the revision graph, which lets us answer the "give me all nodes merged into X which have not been merged into X-1" in a straightforward manner.
Until then, "bzr log" needs the whole graph.
Related branches
Changed in bzr: | |
status: | Triaged → Confirmed |
tags: | added: check-for-breezy |
tags: | removed: check-for-breezy |
there is a workaround in the associated branch