'bzr pull' could use update_basis_by_delta instead of set_parent_trees

Bug #780548 reported by John A Meinel
This bug report is a duplicate of:  Bug #282941: pull uses set_parent_trees. Edit Remove
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Bazaar
Confirmed
Medium
Unassigned

Bug Description

Currently, bzr pull does an iter_changes() style to merge the new contents into the working tree, but then calls "tree.set_parent_trees()" which is an O(tree) operation.

In a case where there aren't any merges, we should be able to use tree.update_basis_by_delta(). Also, the future plans call for not caching merged parents in the dirstate (we don't use it to speed up commit, which was the primary use case). At that point, we could always use a delta to update our metadata.

This currently (bzr-2.4 or bzr-2.3.2) costs us about 15s on a 70k entry dirstate, because of the time it takes to load all the pages of the CHKInventory.

Revision history for this message
John A Meinel (jameinel) wrote :

Technically a dupe of bug #282941, but I'm leaving this bug open for a moment so that we can investigate why Launchpad's search couldn't find this bug. (The Launchpad bug is bug #780636.) When that bug has been investigated, mark this as a duplicate.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.