Re: [PATCH v2 0/6] Partial clone part 1: object filtering
- From
- Jeff Hostetler <git@jeffhostetler.com>
- Date
- Nov 8, 2017, 14:39 UTC
- Message-ID
- <de392bf3-bd53-1c17-3a43-c2e1604cbd59@jeffhostetler.com>
- In-Reply-To
- <xmqq8tfhoai3.fsf@gitster.mtv.corp.google.com>
On 11/7/2017 7:54 PM, Junio C Hamano wrote:
Show 17 quoted lines
> Jonathan Tan <jonathantanmy@google.com> 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.
Show 13 quoted lines
> >> 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