git/Documentation/config
Jonathan Nieder b5651a2092 experimental: default to fetch.writeCommitGraph=false
The fetch.writeCommitGraph feature makes fetches write out a commit
graph file for the newly downloaded pack on fetch.  This improves the
performance of various commands that would perform a revision walk and
eventually ought to be the default for everyone.  To prepare for that
future, it's enabled by default for users that set
feature.experimental=true to experience such future defaults.

Alas, for --unshallow fetches from a shallow clone it runs into a
snag: by the time Git has fetched the new objects and is writing a
commit graph, it has performed a revision walk and r->parsed_objects
contains information about the shallow boundary from *before* the
fetch.  The commit graph writing code is careful to avoid writing a
commit graph file in shallow repositories, but the new state is not
shallow, and the result is that from that point on, commands like "git
log" make use of a newly written commit graph file representing a
fictional history with the old shallow boundary.

We could fix this by making the commit graph writing code more careful
to avoid writing a commit graph that could have used any grafts or
shallow state, but it is possible that there are other pieces of
mutated state that fetch's commit graph writing code may be relying
on.  So disable it in the feature.experimental configuration.

Google developers have been running in this configuration (by setting
fetch.writeCommitGraph=false in the system config) to work around this
bug since it was discovered in April.  Once the fix lands, we'll
enable fetch.writeCommitGraph=true again to give it some early testing
before rolling out to a wider audience.

In other words:

- this patch only affects behavior with feature.experimental=true

- it makes feature.experimental match the configuration Google has
  been using for the last few months, meaning it would leave users in
  a better tested state than without it

- this should improve testing for other features guarded by
  feature.experimental, by making feature.experimental safer to use

Reported-by: Jay Conrod <jayconrod@google.com>
Helped-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2020-07-08 16:37:43 -07:00
..
add.txt Start to implement a built-in version of `git add --interactive` 2019-11-14 11:10:04 +09:00
advice.txt add: change advice config variables used by the add API 2020-02-06 11:08:00 -08:00
alias.txt config/alias.txt: document alias accepting non-command first word 2019-06-06 09:33:42 -07: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 blame: add config options for the output of ignored or unblamable lines 2019-05-16 11:36:23 +09:00
branch.txt pull --rebase/remote rename: document and honor single-letter abbreviations rebase types 2020-02-10 10:52:10 -08:00
browser.txt config.txt: move browser.* to a separate file 2018-10-29 10:17:00 +09:00
checkout.txt switch: no worktree status unless real branch switch happens 2019-04-02 13:57:00 +09:00
clean.txt config.txt: move clean.* to a separate file 2018-10-29 10:17:00 +09:00
color.txt doc: fix repeated words 2019-08-11 17:40:07 -07: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 fsmonitor: update documentation for hook version and watchman hooks 2020-01-23 15:10:23 -08:00
credential.txt docs: document credential.helper allowed values 2020-05-06 11:39:40 -07:00
diff.txt diff: add config option relative 2020-05-24 16:23:59 -07: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
feature.txt experimental: default to fetch.writeCommitGraph=false 2020-07-08 16:37:43 -07:00
fetch.txt experimental: default to fetch.writeCommitGraph=false 2020-07-08 16:37:43 -07: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 format-patch: teach --no-encode-email-headers 2020-04-07 22:37:18 -07:00
fsck.txt config/fsck.txt: avoid starting line with dash 2019-03-07 09:25:32 +09:00
gc.txt commit-graph: turn on commit-graph by default 2019-08-13 13:33:55 -07: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 gpg-interface: add minTrustLevel as a configuration option 2020-01-15 14:06:06 -08: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 'js/https-proxy-config' 2020-03-25 13:57:42 -07: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 repo-settings: create feature.manyFiles setting 2019-08-13 13:33:55 -07:00
init.txt clone: use configured default branch name when appropriate 2020-06-24 09:14:21 -07:00
instaweb.txt config.txt: move instaweb.* to a separate file 2018-10-29 10:17:02 +09:00
interactive.txt checkout: split part of it to new command 'restore' 2019-05-07 13:04:47 +09:00
log.txt log: add log.excludeDecoration config option 2020-04-16 11:05:48 -07: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: teach --autostash option 2020-04-10 09:28:02 -07: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 config: set pack.useSparse=true by default 2020-03-20 14:22:31 -07: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: let feature.experimental imply protocol.version=2 2020-05-21 09:31:42 -07:00
pull.txt pull --rebase/remote rename: document and honor single-letter abbreviations rebase types 2020-02-10 10:52:10 -08:00
push.txt doc: be more precise on (fetch|push).recurseSubmodules 2020-04-06 13:42:43 -07:00
rebase.txt rebase: rename the two primary rebase backends 2020-02-16 15:40:42 -08:00
receive.txt config.txt: move receive-config.txt to config/ 2018-10-29 10:17:03 +09:00
remote.txt remote: add promisor and partial clone config to the doc 2019-06-25 14:05:38 -07: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 stash: remove the stash.useBuiltin setting 2020-03-05 12:50:28 -08:00
status.txt status: add status.aheadbehind setting 2019-06-21 09:35:00 -07:00
submodule.txt doc: explain how to deactivate submodule.recurse completely 2020-04-06 13:42:43 -07:00
tag.txt separate tar.* config to its own source file 2020-03-18 12:42:09 -07:00
tar.txt separate tar.* config to its own source file 2020-03-18 12:42:09 -07:00
trace2.txt trace2: teach Git to log environment variables 2020-03-23 13:14:53 -07:00
transfer.txt doc: typo: s/can not/cannot/ and s/is does/does/ 2019-08-05 10:05:24 -07: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 doc: provide guidance on user.name format 2020-01-22 12:27:08 -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