git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 02/10] pack-objects: add --partial-by-size=n --partial-special

From
JHJeff Hostetler <git@jeffhostetler.com>
Date
Mar 8, 2017, 20:21 UTC
Message-ID
<1c38ffbc-e4a2-32e5-d324-506c2111043e@jeffhostetler.com>
In-Reply-To
<xmqqh93338s2.fsf@gitster.mtv.corp.google.com>
On 3/8/2017 1:47 PM, Junio C Hamano wrote:
Show 19 quoted lines
> Jeff Hostetler <jeffhost@microsoft.com> writes:
>
>> From: Jeff Hostetler <git@jeffhostetler.com>
>>
>> Teach pack-objects to omit blobs from the generated packfile.
>>
>> When the --partial-by-size=n[kmg] argument is used, only blobs
>> smaller than the requested size are included.  When n is zero,
>> no blobs are included.
>
> Does this interact with a more traditional way of feeding output of
> an external "rev-list --objects" to pack-objects via its standard
> input, and if so, should it (and if not, shouldn't it)?
>
> It is perfectly OK if the answer is "this applies only to the case
> where we generate the list of objects with internal traversal." but
> that needs to be documented and discussed in the proposed log
> message.
>

Let me study that and see. I'm still thinking thru ways and options for doing the sparse-checkout like filtering.

Show 14 quoted lines
>> When the --partial-special argument is used, git special files,
>> such as ".gitattributes" and ".gitignores" are included.
>
> And not ."gitmodules"?
>
> What happens when we later add ".gitsomethingelse"?
>
> Do we have to worry about the case where the set of git "special
> files" (can we have a better name for them please, by the way?)
> understood by the sending side and the receiving end is different?
>
> I have a feeling that a mode that makes anything whose name begins
> with ".git" excempt from the size based cutoff may generally be
> easier to handle.

I forgot about ".gitmodules". The more I think about it, maybe we should always include them (or anything starting with ".git*") and ignore the size, since they are important for correct behavior.

Show 7 quoted lines
> I am not sure how "back-filling" of a resulting narrow clone would
> safely be done and how this impacts "git fsck" at this point, but if
> they are solved within this effort, that would be a very welcome
> change.
>
> Thanks.
>
Previous: Junio C HamanoNext: Jeff King
Message 4 of 31 in “RFC Partial Clone and Fetch”
  1. 00/10 RFC Partial Clone and FetchJeff Hostetler, Mar 8, 2017
  2. 02/10 pack-objects: add --partial-by-size=n --partial-specialJeff Hostetler, Mar 8, 2017
  3. Junio C HamanoMar 8, 2017
  4. Jeff HostetlerMar 8, 2017
  5. Jeff KingMar 9, 2017
  6. Brandon WilliamsMar 10, 2017
  7. Jeff KingMar 10, 2017
  8. Junio C HamanoMar 10, 2017
  9. Jeff KingMar 10, 2017
  10. Jeff KingMar 9, 2017
  11. Jeff HostetlerMar 9, 2017
  12. 07/10 index-pack: add --allow-partial option to relax blob existence checksJeff Hostetler, Mar 8, 2017
  13. 05/10 fetch-pack: add partial-by-size and partial-specialJeff Hostetler, Mar 8, 2017
  14. 04/10 upload-pack: add partial (sparse) fetchJeff Hostetler, Mar 8, 2017
  15. Jeff KingMar 9, 2017
  16. Jeff HostetlerMar 9, 2017
  17. Jeff KingMar 9, 2017
  18. 06/10 rev-list: add --allow-partial option to relax connectivity checksJeff Hostetler, Mar 8, 2017
  19. Junio C HamanoMar 8, 2017
  20. Jeff HostetlerMar 8, 2017
  21. Jeff KingMar 9, 2017
  22. Jeff HostetlerMar 9, 2017
  23. 03/10 pack-objects: test for --partial-by-size --partial-specialJeff Hostetler, Mar 8, 2017
  24. Jeff KingMar 9, 2017
  25. Johannes SixtMar 9, 2017
  26. 08/10 fetch: add partial-by-size and partial-special argumentsJeff Hostetler, Mar 8, 2017
  27. 01/10 pack-objects: eat CR in addition to LF after fgets.Jeff Hostetler, Mar 8, 2017
  28. Jeff KingMar 9, 2017
  29. Jeff HostetlerMar 9, 2017
  30. 09/10 clone: add partial-by-size and partial-special argumentsJeff Hostetler, Mar 8, 2017
  31. 10/10 ls-partial: created command to list missing blobsJeff Hostetler, Mar 8, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.