From: Jeff Hostetler Date: Wed, 08 Nov 2017 14:39:35 GMT Subject: Re: [PATCH v2 0/6] Partial clone part 1: object filtering Message-ID: In-Reply-To: On 11/7/2017 7:54 PM, Junio C Hamano wrote: > Jonathan Tan writes: > >> I can see some use for this parameter - for example, when doing a report >> for statistical purposes (percentage of objects missing, for example) or >> for a background task that downloads missing objects into a cache. Also, >> power users who know what they're doing (or normal users in an >> emergency) can use this option when they have no network connection if >> they really need to find something out from the local repo. >> >> In these cases, the promisor check (after detecting that the object is >> missing) is indeed not so useful, I think. (Or we can do the >> --exclude=missing and --exclude=promisor idea that Jeff mentioned - >> --exclude=missing now, and --exclude=promisor after we add promisor >> support.) > > This sounds like a reasonable thing to have in the endgame state to > me. OK thanks, I'll change it to --exclude=missing in my next version. > >> Having said that, I would be OK if we didn't have tolerance (and/or >> reporting) of missing objects right now. As far as I know, for the >> initial implementation of partial clone, only the server performs any >> filtering, and we assume that the server possesses all objects (so it >> does not need to filter out any missing objects). > > True. It does not have to exist in an early part, but I do not > think we would terribly mind if it does, if only to help debugging > and development. > > Thanks for thinking it through. > Right, it could come later, but having it here in part 1 as part of the initial series completes the pre-promisor portion of these commands. Having a print-missing option lets rev-list -- as is -- be used in a bulk-fetch-object pre-checkout hook or as part of a "give me what I need before I go offline" command. This is useful by itself. It does augment the dynamic fetch-object code added in part 2 and the unpack-trees changes in part 3 to call fetch-object. Jeff