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