git-commit-vandalism/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
apply.txt
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
checkout.txt switch: no worktree status unless real branch switch happens 2019-04-02 13:57:00 +09:00
clean.txt
color.txt doc: fix repeated words 2019-08-11 17:40:07 -07:00
column.txt
commit.txt
completion.txt
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
fastimport.txt
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
fmt-merge-msg.txt
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
gitweb.txt
gpg.txt gpg-interface: add minTrustLevel as a configuration option 2020-01-15 14:06:06 -08:00
grep.txt
gui.txt
guitool.txt
help.txt
http.txt Merge branch 'js/https-proxy-config' 2020-03-25 13:57:42 -07:00
i18n.txt
imap.txt
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
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
mailmap.txt
man.txt
merge.txt merge: teach --autostash option 2020-04-10 09:28:02 -07:00
mergetool.txt
notes.txt
pack.txt config: set pack.useSparse=true by default 2020-03-20 14:22:31 -07:00
pager.txt
pretty.txt
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
remote.txt remote: add promisor and partial clone config to the doc 2019-06-25 14:05:38 -07:00
remotes.txt
repack.txt repack: enable bitmaps by default on bare repos 2019-03-18 14:09:54 +09:00
rerere.txt
reset.txt
sendemail.txt
sequencer.txt
showbranch.txt
splitindex.txt
ssh.txt
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
uploadpack.txt
url.txt
user.txt doc: provide guidance on user.name format 2020-01-22 12:27:08 -08:00
versionsort.txt
web.txt
worktree.txt