Merge branch 'jn/eject-fetch-write-commit-graph-out-of-experimental' into master

"fetch.writeCommitGraph" was enabled when "feature.experimental" is
asked for, but it was found to be a bit too risky even for bold
folks in its current shape.  The configuration has been ejected, at
least for now, from the "experimental" feature set.

* jn/eject-fetch-write-commit-graph-out-of-experimental:
  experimental: default to fetch.writeCommitGraph=false
This commit is contained in:
Junio C Hamano
2020-07-09 14:00:44 -07:00
3 changed files with 5 additions and 14 deletions

View File

@ -15,14 +15,6 @@ feature.experimental::
* `fetch.negotiationAlgorithm=skipping` may improve fetch negotiation times by * `fetch.negotiationAlgorithm=skipping` may improve fetch negotiation times by
skipping more commits at a time, reducing the number of round trips. skipping more commits at a time, reducing the number of round trips.
+ +
* `fetch.writeCommitGraph=true` writes a commit-graph after every `git fetch`
command that downloads a pack-file from a remote. Using the `--split` option,
most executions will create a very small commit-graph file on top of the
existing commit-graph file(s). Occasionally, these files will merge and the
write may take longer. Having an updated commit-graph file helps performance
of many Git commands, including `git merge-base`, `git push -f`, and
`git log --graph`.
+
* `protocol.version=2` speeds up fetches from repositories with many refs by * `protocol.version=2` speeds up fetches from repositories with many refs by
allowing the client to specify which refs to list before the server lists allowing the client to specify which refs to list before the server lists
them. them.

View File

@ -90,5 +90,4 @@ fetch.writeCommitGraph::
the existing commit-graph file(s). Occasionally, these files will the existing commit-graph file(s). Occasionally, these files will
merge and the write may take longer. Having an updated commit-graph merge and the write may take longer. Having an updated commit-graph
file helps performance of many Git commands, including `git merge-base`, file helps performance of many Git commands, including `git merge-base`,
`git push -f`, and `git log --graph`. Defaults to false, unless `git push -f`, and `git log --graph`. Defaults to false.
`feature.experimental` is true.

View File

@ -51,14 +51,14 @@ void prepare_repo_settings(struct repository *r)
UPDATE_DEFAULT_BOOL(r->settings.index_version, 4); UPDATE_DEFAULT_BOOL(r->settings.index_version, 4);
UPDATE_DEFAULT_BOOL(r->settings.core_untracked_cache, UNTRACKED_CACHE_WRITE); UPDATE_DEFAULT_BOOL(r->settings.core_untracked_cache, UNTRACKED_CACHE_WRITE);
} }
if (!repo_config_get_bool(r, "fetch.writecommitgraph", &value)) if (!repo_config_get_bool(r, "fetch.writecommitgraph", &value))
r->settings.fetch_write_commit_graph = value; r->settings.fetch_write_commit_graph = value;
if (!repo_config_get_bool(r, "feature.experimental", &value) && value) {
UPDATE_DEFAULT_BOOL(r->settings.fetch_negotiation_algorithm, FETCH_NEGOTIATION_SKIPPING);
UPDATE_DEFAULT_BOOL(r->settings.fetch_write_commit_graph, 1);
}
UPDATE_DEFAULT_BOOL(r->settings.fetch_write_commit_graph, 0); UPDATE_DEFAULT_BOOL(r->settings.fetch_write_commit_graph, 0);
if (!repo_config_get_bool(r, "feature.experimental", &value) && value)
UPDATE_DEFAULT_BOOL(r->settings.fetch_negotiation_algorithm, FETCH_NEGOTIATION_SKIPPING);
/* Hack for test programs like test-dump-untracked-cache */ /* Hack for test programs like test-dump-untracked-cache */
if (ignore_untracked_cache_config) if (ignore_untracked_cache_config)
r->settings.core_untracked_cache = UNTRACKED_CACHE_KEEP; r->settings.core_untracked_cache = UNTRACKED_CACHE_KEEP;