'bzr pull' downloads too much when there are only a few changes
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:/
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:/
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...?)?
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.