]> git.ipfire.org Git - thirdparty/git.git/commit
config: set pack.useSparse=true by default
authorDerrick Stolee <dstolee@microsoft.com>
Fri, 20 Mar 2020 12:38:09 +0000 (12:38 +0000)
committerJunio C Hamano <gitster@pobox.com>
Fri, 20 Mar 2020 21:22:31 +0000 (14:22 -0700)
commitde3a864114291632c05e67bec4a316257c7ff97d
treea67f00f13d80cffd692e1fc675b57c3745b7a286
parent98cedd0233ee88e69711f79d1126b6bd772ff5bd
config: set pack.useSparse=true by default

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.
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: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/config/feature.txt
Documentation/config/pack.txt
Documentation/git-pack-objects.txt
repo-settings.c
t/t5322-pack-objects-sparse.sh