Re: [PATCH v4 04/10] sparse-index: use WRITE_TREE_MISSING_OK

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 8/27/2021 5:33 PM, Elijah Newren wrote:
> On Tue, Aug 24, 2021 at 2:51 PM Derrick Stolee via GitGitGadget
> <gitgitgadget@xxxxxxxxx> wrote:
>>
>> From: Derrick Stolee <dstolee@xxxxxxxxxxxxx>
>>
>> When updating the cache tree in convert_to_sparse(), the
>> WRITE_TREE_MISSING_OK flag indicates that trees might be computed that
>> do not already exist within the object database.
> 
> Okay.
> 
>> This happens in cases
>> such as 'git add' creating new trees that it wants to store in
>> anticipation of a following 'git commit'.
> 
> This doesn't make any sense to me.  Does 'git add' call
> convert_to_sparse()?  I don't see why it would; wouldn't the calls to
> convert_to_sparse() come via sparse-checkout init/set commands?  If
> I'm correct on that, and 'git add' wants to create new trees, then by
> the time convert_to_sparse() is called in some subsequent git
> operation, then convert_to_sparse would already have the trees it
> needs.

If someone adds a change outside the sparse-checkout cone, then the
index is expanded in-memory, then is converted to sparse when the
index is written again.

> I thought the reason you would need this is someone modified and
> staged a change to a file underneath a directory that will be
> sparsified away; at the time of convert_to_sparse(), a tree object may
> not have yet been written for the new tree with the newly modified
> file (because those tend to be written at commit time), but you'd need
> it at the time you sparsified.

Yes. I think we are trying to say the same thing.

Thanks,
-Stolee



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux