'bzr pull' downloads too much when there are only a few changes

Bug #294765 reported by John A Meinel
6
Affects Status Importance Assigned to Milestone
Bazaar
Fix Released
Medium
Unassigned

Bug Description

Reporting this on behalf of a colleague. He happened to be on a slow link (internet connection through mobile phone), something like a few kilobytes per second.
He had a branch of https://code.launchpad.net/~mysql/mysql-server/mysql-maria. He used the bzr+ssh protocol (he wasn't using the launchpad branch but the branch which launchpad mirrors, which supports bzr+ssh).
He committed a revision in his copy.
When he wanted to push, he did "bzr pull" to check if something had been pushed to https://code.launchpad.net/~mysql/mysql-server/mysql-maria meanwhile.
The command apparently downloaded 4MB of data (~ an hour in his case) before bailing out saying that branches were diverged.
So the question is: is the implementation of testing of divergence efficient right now? Does it download the entire revision graph from the remote machine before deciding if branches diverged? Would a quick pre-check make sense (like, local host sends its most recent revid, remote checks if this revid is in remote branch, if no then they diverged, if yes, more checks...?)?

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

The new btree index format should make a big difference for this case.

I'm attaching a script which does a direct conversion of the indexes, rather than doing a repository-wide upgrade.

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

It is hard to claim that this is "fix released" because we can always improve what we do. But the btree indexes should at least help this, which is what I opened this bug for.

Changed in bzr:
importance: Undecided → Medium
milestone: none → 1.9rc1
status: New → Fix Released
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.