Re: [PATCH 5/5] unpack_trees(): add support for sparse checkout
- From
Nguyen Thai Ngoc Duy <pclouds@gmail.com>
- Date
- Jul 29, 2009, 23:32 UTC
- Message-ID
- <fcaeb9bf0907291632n418508ccke6ad274211690e59@mail.gmail.com>
- In-Reply-To
- <m3zlan1zhv.fsf@localhost.localdomain>
2009/7/29 Jakub Narebski <jnareb@gmail.com>:
Show 8 quoted lines
> Nguyễn Thái Ngọc Duy <pclouds@gmail.com> writes: > >> This patch teaches unpack_trees() to checkout/remove entries >> on working directories appropriately when sparse checkout area is >> changed. A helper "git shape-workdir" is needed to help determine >> which entry will be checked out, which will be not. > > Wouldn't "git update-index --index-info" (perhaps extended) be enough?
It's a bit more complicated because the in-memory index is filled with various information and can't just be dumped out to be manipulated with "git update-index".
Show 17 quoted lines
>> >> "git shape-workdir" will receive from stdin in this format >> >> X\tpathname >> >> where X is either >> - '!' current entry is already CE_VALID >> - 'N' current entry is "new" (it has not been in index before) >> - '-' current entry is "normal" entry >> >> "git shape-workdir" is expected to return either "1" or "0" >> immediately. "1" means the entry should be in workdir. "0" means >> setting CE_VALID and get rid of it from workdir. > > Just in case it would be better IMVHO if it returned "1\tpathname" or > "2\tpathname". By the way, is 'pathname' quoted if necessary, and > does git-shape-workdir support -z/--null option?
It doesn't currently. Thanks for the suggestion.
> Signoff (also in some other patches in this series)?
This series is mainly for taking input on how git-shape-workdir should behave, what format is good... That's why I did not sign off. Anyway the series is not really well tested (and obvious lacks tests)
-- Duy