On 7/21/2022 5:39 PM, Josh Steadmon wrote: > On 2022.06.29 20:40, Derrick Stolee via GitGitGadget wrote: >> From: Derrick Stolee <derrickstolee@xxxxxxxxxx> >> +* A bundle download during a `git fetch` contains objects already in the >> + object database. This is probably unavoidable if we are using bundles >> + for fetches, since the client will almost always be slightly ahead of >> + the bundle servers after performing its "catch-up" fetch to the remote >> + server. This extra work is most wasteful when the client is fetching >> + much more frequently than the server is computing bundles, such as if >> + the client is using hourly prefetches with background maintenance, but >> + the server is computing bundles weekly. For this reason, the client >> + should not use bundle URIs for fetch unless the server has explicitly >> + recommended it through the `bundle.flags = forFetch` value. > > The "Bundle Lists" section above doesn't mention `bundle.flags` at all; > has this been replaced by `bundle.heuristic`? You and Matthew both caught this. I first thought that absolutely this was a replacement I missed. Then I re-checked my future steps and the very last patch implements `bundle.flags = forFetch`. However, the reason it exists is for the ability to incrementally fetch even if the `bundle.heuristic` value is not set. That requires the "download only the headers" feature, so should be delayed to that implementation. I'll remove it from the design doc and instead implement the logic to store the bundle URI for fetching if `bundle.heuristic=creationToken`, which can be extended later. Thanks, -Stolee