Thread (19 messages) 19 messages, 3 authors, 2016-06-15

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

From: Nguyen Thai Ngoc Duy <hidden>
Date: 2016-06-15 22:47:13

2009/8/10 Johannes Schindelin [off-list ref]:
Hi,

On Mon, 10 Aug 2009, Nguyễn Thái Ngọc Duy wrote:
quoted
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help