fetch: add the command-line option --write-commit-graph

This option overrides the config setting `fetch.writeCommitGraph`, if
both are set.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Johannes Schindelin 2019-11-03 00:21:56 +00:00 committed by Junio C Hamano
parent da72936f54
commit c14e6e7903
2 changed files with 10 additions and 1 deletions

View File

@ -92,6 +92,10 @@ ifndef::git-pull[]
Run `git gc --auto` at the end to perform garbage collection Run `git gc --auto` at the end to perform garbage collection
if needed. This is enabled by default. if needed. This is enabled by default.
--[no-]write-commit-graph::
Write a commit-graph after fetching. This overrides the config
setting `fetch.writeCommitGraph`.
-p:: -p::
--prune:: --prune::
Before fetching, remove any remote-tracking references that no Before fetching, remove any remote-tracking references that no

View File

@ -77,6 +77,7 @@ static struct refspec refmap = REFSPEC_INIT_FETCH;
static struct list_objects_filter_options filter_options; static struct list_objects_filter_options filter_options;
static struct string_list server_options = STRING_LIST_INIT_DUP; static struct string_list server_options = STRING_LIST_INIT_DUP;
static struct string_list negotiation_tip = STRING_LIST_INIT_NODUP; static struct string_list negotiation_tip = STRING_LIST_INIT_NODUP;
static int fetch_write_commit_graph = -1;
static int git_fetch_config(const char *k, const char *v, void *cb) static int git_fetch_config(const char *k, const char *v, void *cb)
{ {
@ -198,6 +199,8 @@ static struct option builtin_fetch_options[] = {
N_("run 'gc --auto' after fetching")), N_("run 'gc --auto' after fetching")),
OPT_BOOL(0, "show-forced-updates", &fetch_show_forced_updates, OPT_BOOL(0, "show-forced-updates", &fetch_show_forced_updates,
N_("check for forced-updates on all updated branches")), N_("check for forced-updates on all updated branches")),
OPT_BOOL(0, "write-commit-graph", &fetch_write_commit_graph,
N_("write the commit-graph after fetching")),
OPT_END() OPT_END()
}; };
@ -1865,7 +1868,9 @@ int cmd_fetch(int argc, const char **argv, const char *prefix)
string_list_clear(&list, 0); string_list_clear(&list, 0);
prepare_repo_settings(the_repository); prepare_repo_settings(the_repository);
if (the_repository->settings.fetch_write_commit_graph) { if (fetch_write_commit_graph > 0 ||
(fetch_write_commit_graph < 0 &&
the_repository->settings.fetch_write_commit_graph)) {
int commit_graph_flags = COMMIT_GRAPH_WRITE_SPLIT; int commit_graph_flags = COMMIT_GRAPH_WRITE_SPLIT;
struct split_commit_graph_opts split_opts; struct split_commit_graph_opts split_opts;
memset(&split_opts, 0, sizeof(struct split_commit_graph_opts)); memset(&split_opts, 0, sizeof(struct split_commit_graph_opts));