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

Re: [PATCH 1/5] archive-tar: turn write_tar_entry into blob-writing only

From
René Scharfe <rene.scharfe@lsrfire.ath.cx>
Date
Apr 30, 2012, 22:11 UTC
Message-ID
<4F9F0E21.3080407@lsrfire.ath.cx>
In-Reply-To
<7vr4v5f5n2.fsf@alter.siamese.dyndns.org>
Am 30.04.2012 20:15, schrieb Junio C Hamano:
Show 23 quoted lines
> Nguyễn Thái Ngọc Duy<pclouds@gmail.com>  writes:
>
>> Before this patch write_tar_entry() can:
>>
>>   - write global header
>>     by write_global_extended_header() calling write_tar_entry with
>>     with both sha1 and path == NULL
>>
>>   - write extended header for symlinks, by write_tar_entry() calling
>>     itself with sha1 != NULL and path == NULL
>>
>>   - write a normal blob. In this case both sha1 and path are valid.
>>
>> After this patch, the first two call sites are modified to write the
>> header without calling write_tar_entry(). The function is now for
>> writing blobs only.
>
> Nice.
>
> I am kind of surprised how hacky the original code that switched on !sha1
> and !path was, especially given that it came from René at ae64bbc
> (tar-tree: Introduce write_entry(), 2006-03-25) --- it even claims that
> these are "reasonable" magic values ;-).

Yeah, and there are still opportunities for cleanup. Can't say what I was thinking back then, but a few cleanup attempts since then invariably made the code even more ugly, so I never sent them.

René
Previous: Junio C HamanoNext: Nguyễn Thái Ngọc Duy
Message 4 of 23 in “Large file support for git-archive”
  1. 0/5 Large file support for git-archiveNguyễn Thái Ngọc Duy, Apr 30, 2012
  2. 1/5 archive-tar: turn write_tar_entry into blob-writing onlyNguyễn Thái Ngọc Duy, Apr 30, 2012
  3. Junio C HamanoApr 30, 2012
  4. René ScharfeApr 30, 2012
  5. 2/5 archive-tar: unindent write_tar_entry by one levelNguyễn Thái Ngọc Duy, Apr 30, 2012
  6. 3/5 archive: delegate blob reading to backendNguyễn Thái Ngọc Duy, Apr 30, 2012
  7. René ScharfeApr 30, 2012
  8. 4/5 archive-tar: stream large blobs to tar fileNguyễn Thái Ngọc Duy, Apr 30, 2012
  9. Junio C HamanoApr 30, 2012
  10. René ScharfeApr 30, 2012
  11. Junio C HamanoApr 30, 2012
  12. René ScharfeApr 30, 2012
  13. 5/5 archive-zip: stream large blobs into zip fileNguyễn Thái Ngọc Duy, Apr 30, 2012
  14. Junio C HamanoApr 30, 2012
  15. René ScharfeApr 30, 2012
  16. streaming: void pointer instead of char pointerRené Scharfe, Apr 30, 2012
  17. archive-zip: remove uncompressed_sizeRené Scharfe, Apr 30, 2012
  18. archive-zip: factor out helpers for writing sizes and CRCRené Scharfe, Apr 30, 2012
  19. archive-zip: streaming for stored filesRené Scharfe, Apr 30, 2012
  20. archive-zip: streaming for deflated filesRené Scharfe, Apr 30, 2012
  21. Junio C HamanoApr 30, 2012
  22. René ScharfeApr 30, 2012
  23. Nguyen Thai Ngoc DuyMay 1, 2012

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.