"bzr missing" should store the downloaded data in order to make "pull" (and "missing") faster
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Bazaar |
Won't Fix
|
Undecided
|
Unassigned |
Bug Description
Tested with http://
After some time without updating:
- bzr missing → downloads 3 Mb
- bzr missing (right after that) → downloads the 3 Mb again
- bzr missing → again the 3 Mb, etc.
- bzr pull → must download a lot of data again (>3 Mb)
After the first "missing", the downloaded data could be stored in the local branch, so that successive calls to "missing" do only a remote check to confirm that there's nothing else (or download just the differences).
A "pull" after the "missing" could also be instantaneous.
This is similar to what git does: "git fetch" downloads the data. Then "git pull" is instantaneous.
I also would really like this.
One concern that one might have is that if you run missing on a lot of branches and don't then pull/merge from them, it will fill up your local repository with lots of junk.
I still think having missing pull in the data is a good default, though, as network access is generally more expensive than disk space, and doing pull after missing is probably a very typical case. Even if it's not the default, there should be a way to save the data, like "bzr missing --save" for example (that name isn't great, but you get the idea).
Any wasted space in the repository wouldn't be much worse than what you get if you uncommit all the time, or use a shared repository with dead-end branches, and can be cleaned the usual way by re-branching. A "bzr gc"-type operation--which we need eventually anyway--would make this workaround unnecessary.