On 2/23/2022 12:55 PM, Derrick Stolee via GitGitGadget wrote: > While discussing bundle-URIs [1], it came to my attention that bundles have > no way to specify an object filter, so bundles cannot be used with partial > clones. > > [1] > https://lore.kernel.org/git/7fab28bf-54e7-d0e9-110a-53fad6244cc9@xxxxxxxxx/ > > This series provides a way to fix that by adding a 'filter' capability to > the bundle file format and allowing one to create a partial bundle with 'git > bundle create --filter=blob:none '. > > There are a couple things that I want to point out about this implementation > that could use some high-level feedback: > > 1. I moved the '--filter' parsing into setup_revisions() instead of adding > another place to parse it. This works for 'git bundle' but it also > allows it to be parsed successfully in commands such as 'git diff' which > doesn't make sense. Options such as '--objects' are already being parsed > there, and they don't make sense either, so I want some thoughts on > this. > > 2. If someone uses 'git clone partial.bdl partial' where 'partial.bdl' is a > filtered bundle, then the clone will fail with a message such as > > fatal: missing blob object '9444604d515c0b162e37e59accd54a0bac50ed2e' fatal: > remote did not send all necessary objects > > This might be fine. We don't expect users to clone partial bundles or fetch > partial bundles into an unfiltered repo and these failures are expected. It > is possible that we could put in custom logic to fail faster by reading the > bundle header for a filter. > > Generally, the idea is to open this up as a potential way to bootstrap a > clone of a partial clone using a set of precomputed partial bundles. Thanks Jeff, for providing a review of this series. I hope that at least one other reviewer could take a look sometime. Thanks, -Stolee