Re: [PATCH] config: set pack.useSparse=true by default

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

 



On 3/19/2020 7:13 PM, Jonathan Nieder wrote:
> Hi,
> 
> Derrick Stolee wrote:
> 
>> The pack.useSparse config option was introduced by 3d036eb0
>> (pack-objects: create pack.useSparse setting, 2019-01-19) and was
>> first available in v2.21.0. When enabled, the pack-objects process
>> during 'git push' will use a sparse tree walk when deciding which
>> trees and blobs to send to the remote. The algorithm was introduced
>> by d5d2e93 (revision: implement sparse algorithm, 2019-01-16) and
>> has been in production use by VFS for Git since around that time.
>> The features.experimental config option also enabled pack.useSparse,
>> so hopefully that has also increased exposure.
>>
>> It is worth noting that pack.useSparse has a possibility of
>> sending more objects across a push, but requires a special
>> arrangement of exact _copies_ across directories. There is a test
>> in t5322-pack-objects-sparse.sh that demonstrates this possibility.
>>
>> Since the downside is unlikely but the upside is significant, set
>> the default value of pack.useSparse to true. Remove it from the
>> set of options implied by features.experimental.
>>
>> Signed-off-by: Derrick Stolee <dstolee@xxxxxxxxxxxxx>
>> ---
>>  Documentation/config/feature.txt | 3 ---
>>  Documentation/config/pack.txt    | 4 ++--
>>  repo-settings.c                  | 3 ++-
>>  3 files changed, 4 insertions(+), 6 deletions(-)
> 
> Makes sense.  Thanks for writing it.
> 
> Should this have a test?

I suppose the test that demonstrates the difference in algorithm
in t5322-pack-objects-sparse.sh could be adjusted to drop the
explicit config setting, which would demonstrate that the config
option is being set correctly.

While looking at that test, I see that we use --[no-]sparse
explicitly everywhere to avoid conflicts with the GIT_TEST_*
variable that enables the algorithm. This leads to two things
I will do in v2 that I did not do here:

1. Update the docs for "git pack-objects" because it doesn't
   reference that --no-sparse is an option. Point out that the
   new default is --sparse.

2. Remove GIT_TEST_PACK_SPARSE which was used to test this sparse
   algorithm throughout the test suite.

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