> I wonder whether we can make this a bit more user-friendly by defaulting > to `--right-only` if there are no promised objects in the symmetric range, > and if there _are_ promised objects, to skip `--right-only`, possibly with > an advice that we did that and how to force it to download the promised > objects? Thanks for your suggestion. I'm inclined to think that in a partial clone, whether an object is missing or not should not affect the behavior of a Git command (except for lazy fetching and performance), but I can see how this is useful, at least for the purposes of discoverability and ease of use (good diagnostics for the non-partial-clone case, and better performance for the partial clone case). But in any case, I think that this can be built later on top of my patch. Even if we have automatic detection of missing objects and automatic selection of functionality, we will still need the CLI arguments for manual override, so the CLI flags and functionality in this patch are still useful.