Skip to content
  • Derrick Stolee's avatar
    config: set pack.useSparse=true by default · de3a8641
    Derrick Stolee authored and Junio C Hamano's avatar Junio C Hamano committed
    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 d5d2e935
    
     (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.
    This test uses the --sparse option to "git pack-objects" but we
    can make it implied by the config value to demonstrate that the
    default value has changed.
    
    While updating that test, I noticed that the documentation did not
    include an option for --no-sparse, which is now more important than
    it was before.
    
    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: default avatarDerrick Stolee <dstolee@microsoft.com>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    de3a8641