git/Documentation/config
Jeff King d4316604f8 pack-objects: default to writing bitmap hash-cache
Enabling pack.writebitmaphashcache should always be a performance win.
It costs only 4 bytes per object on disk, and the timings in ae4f07fbcc
(pack-bitmap: implement optional name_hash cache, 2013-12-21) show it
improving fetch and partial-bitmap clone times by 40-50%.

The only reason we didn't enable it by default at the time is that early
versions of JGit's bitmap reader complained about the presence of
optional header bits it didn't understand. But that was changed in
JGit's d2fa3987a (Use bitcheck to check for presence of OPT_FULL option,
2013-10-30), which made it into JGit v3.5.0 in late 2014.

So let's turn this option on by default. It's backwards-compatible with
all versions of Git, and if you are also using JGit on the same
repository, you'd only run into problems using a version that's almost 5
years old.

We'll drop the manual setting from all of our test scripts, including
perf tests. This isn't strictly necessary, but it has two advantages:

  1. If the hash-cache ever stops being enabled by default, our perf
     regression tests will notice.

  2. We can use the modified perf tests to show off the behavior of an
     otherwise unconfigured repo, as shown below.

These are the results of a few of a perf tests against linux.git that
showed interesting results. You can see the expected speedup in 5310.4,
which was noted in ae4f07fbcc. Curiously, 5310.8 did not improve (and
actually got slower), despite seeing the opposite in ae4f07fbcc.
I don't have an explanation for that.

The tests from p5311 did not exist back then, but do show improvements
(a smaller pack due to better deltas, which we found in less time).

  Test                                    HEAD^                HEAD
  -------------------------------------------------------------------------------------
  5310.4: simulated fetch                 7.39(22.70+0.25)     5.64(11.43+0.22) -23.7%
  5310.8: clone (partial bitmap)          18.45(24.83+1.19)    19.94(28.40+1.36) +8.1%
  5311.31: server (128 days)              0.41(1.13+0.05)      0.34(0.72+0.02) -17.1%
  5311.32: size   (128 days)                         7.4M                 7.0M -4.8%
  5311.33: client (128 days)              1.33(1.49+0.06)      1.29(1.37+0.12) -3.0%

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-03-18 14:11:15 +09:00
..
add.txt config.txt: move add.* to a separate file 2018-10-29 10:17:00 +09:00
advice.txt push: add an advice on unqualified <dst> push 2018-11-14 15:27:55 +09:00
alias.txt config.txt: move alias.* to a separate file 2018-10-29 10:17:00 +09:00
am.txt config.txt: move am.* to a separate file 2018-10-29 10:17:00 +09:00
apply.txt config.txt: move apply.* to a separate file 2018-10-29 10:17:00 +09:00
blame.txt config.txt: move blame.* to a separate file 2018-10-29 10:17:00 +09:00
branch.txt config.txt: move branch.* to a separate file 2018-10-29 10:17:00 +09:00
browser.txt config.txt: move browser.* to a separate file 2018-10-29 10:17:00 +09:00
checkout.txt config.txt: move checkout.* to a separate file 2018-10-29 10:17:00 +09:00
clean.txt config.txt: move clean.* to a separate file 2018-10-29 10:17:00 +09:00
color.txt config.txt: move color.* to a separate file 2018-10-29 10:17:00 +09:00
column.txt config.txt: move column.* to a separate file 2018-10-29 10:17:00 +09:00
commit.txt config.txt: move commit.* to a separate file 2018-10-29 10:17:00 +09:00
completion.txt config.txt: move completion.* to a separate file 2018-10-29 10:17:01 +09:00
core.txt docs/config: clarify "text property" in core.eol 2019-01-29 09:21:33 -08:00
credential.txt config.txt: move credential.* to a separate file 2018-10-29 10:17:01 +09:00
diff.txt Merge branch 'nd/config-split' 2018-11-13 22:37:16 +09:00
difftool.txt config.txt: move difftool.* to a separate file 2018-10-29 10:17:01 +09:00
fastimport.txt config.txt: move fastimport.* to a separate file 2018-10-29 10:17:01 +09:00
fetch.txt config.txt: move fetch-config.txt to config/ 2018-10-29 10:17:01 +09:00
filter.txt config.txt: move filter.* to a separate file 2018-10-29 10:17:01 +09:00
fmt-merge-msg.txt config.txt: move fmt-merge-msg-config.txt to config/ 2018-10-29 10:17:01 +09:00
format.txt config.txt: move format-config.txt to config/ 2018-10-29 10:17:01 +09:00
fsck.txt config.txt: move fsck.* to a separate file 2018-10-29 10:17:01 +09:00
gc.txt config.txt: move gc.* to a separate file 2018-10-29 10:17:01 +09:00
gitcvs.txt config.txt: move gitcvs-config.txt to config/ 2018-10-29 10:17:01 +09:00
gitweb.txt config.txt: move gitweb.* to a separate file 2018-10-29 10:17:01 +09:00
gpg.txt config.txt: move gpg.* to a separate file 2018-10-29 10:17:02 +09:00
grep.txt config.txt: move grep.* to a separate file 2018-10-29 10:17:01 +09:00
gui.txt config.txt: move gui-config.txt to config/ 2018-10-29 10:17:02 +09:00
guitool.txt config.txt: move guitool.* to a separate file 2018-10-29 10:17:02 +09:00
help.txt config.txt: move help.* to a separate file 2018-10-29 10:17:02 +09:00
http.txt Merge branch 'fc/http-version' 2019-01-04 13:33:32 -08:00
i18n.txt config.txt: move i18n.* to a separate file 2018-10-29 10:17:02 +09:00
imap.txt git-imap-send.txt: move imap.* to a separate file 2018-10-29 10:17:02 +09:00
index.txt index: make index.threads=true enable ieot and eoie 2018-11-21 16:46:54 +09:00
init.txt config.txt: move init.* to a separate file 2018-10-29 10:17:02 +09:00
instaweb.txt config.txt: move instaweb.* to a separate file 2018-10-29 10:17:02 +09:00
interactive.txt config.txt: move interactive.* to a separate file 2018-10-29 10:17:02 +09:00
log.txt config.txt: move log.* to a separate file 2018-10-29 10:17:02 +09:00
mailinfo.txt config.txt: move mailinfo.* to a separate file 2018-10-29 10:17:02 +09:00
mailmap.txt config.txt: move mailmap.* to a separate file 2018-10-29 10:17:03 +09:00
man.txt config.txt: move man.* to a separate file 2018-10-29 10:17:03 +09:00
merge.txt Merge branch 'nd/config-split' 2018-11-13 22:37:16 +09:00
mergetool.txt config.txt: move mergetool.* to a separate file 2018-10-29 10:17:03 +09:00
notes.txt config.txt: move notes.* to a separate file 2018-10-29 10:17:03 +09:00
pack.txt pack-objects: default to writing bitmap hash-cache 2019-03-18 14:11:15 +09:00
pager.txt config.txt: move pager.* to a separate file 2018-10-29 10:17:03 +09:00
pretty.txt config.txt: move pretty.* to a separate file 2018-10-29 10:17:03 +09:00
protocol.txt config.txt: move protocol.* to a separate file 2018-10-29 10:17:03 +09:00
pull.txt config.txt: move pull-config.txt to config/ 2018-10-29 10:17:03 +09:00
push.txt config.txt: move push-config.txt to config/ 2018-10-29 10:17:03 +09:00
rebase.txt rebase: add a config option to default to --reschedule-failed-exec 2018-12-11 17:19:01 +09:00
receive.txt config.txt: move receive-config.txt to config/ 2018-10-29 10:17:03 +09:00
remote.txt config.txt: move remote.* to a separate file 2018-10-29 10:17:03 +09:00
remotes.txt config.txt: move remotes.* to a separate file 2018-10-29 10:17:03 +09:00
repack.txt repack: enable bitmaps by default on bare repos 2019-03-18 14:09:54 +09:00
rerere.txt config.txt: move rerere.* to a separate file 2018-10-29 10:17:04 +09:00
reset.txt config.txt: move reset.* to a separate file 2018-10-29 10:17:04 +09:00
sendemail.txt config.txt: move sendemail-config.txt to config/ 2018-10-29 10:17:04 +09:00
sequencer.txt config.txt: move sequencer.* to a separate file 2018-10-29 10:17:04 +09:00
showbranch.txt config.txt: move showBranch.* to a separate file 2018-10-29 10:17:04 +09:00
splitindex.txt config.txt: move splitIndex.* to a separate file 2018-10-29 10:17:04 +09:00
ssh.txt config.txt: move ssh.* to a separate file 2018-10-29 10:17:02 +09:00
stash.txt config.txt: move stash.* to a separate file 2018-10-29 10:17:04 +09:00
status.txt config.txt: move status.* to a separate file 2018-10-29 10:17:04 +09:00
submodule.txt config.txt: move submodule.* to a separate file 2018-10-29 10:17:04 +09:00
tag.txt config.txt: move tag.* to a separate file 2018-10-29 10:17:04 +09:00
transfer.txt config.txt: move transfer.* to a separate file 2018-10-29 10:17:04 +09:00
uploadarchive.txt config.txt: move uploadarchive.* to a separate file 2018-10-29 10:17:04 +09:00
uploadpack.txt config.txt: move uploadpack.* to a separate file 2018-10-29 10:17:04 +09:00
url.txt config.txt: move url.* to a separate file 2018-10-29 10:17:04 +09:00
user.txt config: allow giving separate author and committer idents 2019-02-04 12:18:13 -08:00
versionsort.txt config.txt: move versionsort.* to a separate file 2018-10-29 10:17:05 +09:00
web.txt config.txt: move web.* to a separate file 2018-10-29 10:17:05 +09:00
worktree.txt doc/config: do a better job of introducing 'worktree.guessRemote' 2018-12-28 13:27:11 -08:00