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

Re: [RFC PATCH v2 3/4] unpack_trees(): add support for sparse checkout

From
Nguyen Thai Ngoc Duy <pclouds@gmail.com>
Date
Aug 11, 2009, 01:47 UTC
Message-ID
<fcaeb9bf0908101847w7b3b22d9w84514a29ceae719e@mail.gmail.com>
In-Reply-To
<alpine.DEB.1.00.0908101837510.8324@intel-tinevez-2-302>
2009/8/10 Johannes Schindelin <Johannes.Schindelin@gmx.de>:
Show 28 quoted lines
> Hi,
>
> On Mon, 10 Aug 2009, Nguyễn Thái Ngọc Duy wrote:
>
>> This patch teaches unpack_trees() to checkout/remove entries on working
>> directories appropriately when sparse checkout area is changed. Hook
>> "sparse" is needed to help determine which entry will be checked out,
>> which will not be.
>>
>> When the hook is run, it is prepared with a pseudo index. The hook then
>> can use "git update-index --[no-]assume-unchanged" to manipulate the
>> index. It should not do anything else on the index. Assume unchanged
>> information from the index will be used to shape working directory.
>
> If I understand correctly, the purpose of the hook is to allow the user to
> mark something as unwanted preemptively, right?
>
> If that is the sole reason for the hook, would it not be better to add
> support for a file .git/info/sparse which has the same syntax as
> .git/info/exclude, and which is used to determine if an
> added/modified/deleted file is supposed to be in the "sparse" area or not?
>
> Something like
>
>        *
>        !/Documentation/
>
> comes to mind.

That was what the original series was about (although I used git config instead of .git/info/sparse). The hook has two advantages:

 - flexibility: you can set things differently based on branch, for
example, or filter files based on certain file content.
 - less code bloat (and less intrusive too), compare ~1000 lines of
change of the original series with this series.
-- 
Duy
Previous: Johannes SchindelinNext: Johannes Schindelin
Message 12 of 19 in “Sparse checkout”
  1. 0/4 Sparse checkoutNguyễn Thái Ngọc Duy, Aug 10, 2009
  2. 1/4 Prevent diff machinery from examining assume-unchanged entries on worktreeNguyễn Thái Ngọc Duy, Aug 10, 2009
  3. 2/4 gitignore: read from index if .gitignore is assume-unchangedNguyễn Thái Ngọc Duy, Aug 10, 2009
  4. 3/4 unpack_trees(): add support for sparse checkoutNguyễn Thái Ngọc Duy, Aug 10, 2009
  5. 4/4 read-tree: add --no-sparse to turn off sparse hookNguyễn Thái Ngọc Duy, Aug 10, 2009
  6. Johannes SchindelinAug 10, 2009
  7. Nguyen Thai Ngoc DuyAug 11, 2009
  8. Junio C HamanoAug 11, 2009
  9. Johannes SchindelinAug 11, 2009
  10. Nguyen Thai Ngoc DuyAug 11, 2009
  11. Johannes SchindelinAug 10, 2009
  12. Nguyen Thai Ngoc DuyAug 11, 2009
  13. Johannes SchindelinAug 11, 2009
  14. Johannes SchindelinAug 10, 2009
  15. Nguyen Thai Ngoc DuyAug 11, 2009
  16. Johannes SchindelinAug 11, 2009
  17. Johannes SchindelinAug 10, 2009
  18. Nguyen Thai Ngoc DuyAug 11, 2009
  19. Johannes SchindelinAug 11, 2009

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.