]> git.ipfire.org Git - thirdparty/git.git/commitdiff
fetch: add the command-line option `--write-commit-graph`
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Sun, 3 Nov 2019 00:21:56 +0000 (00:21 +0000)
committerJunio C Hamano <gitster@pobox.com>
Wed, 6 Nov 2019 01:59:36 +0000 (10:59 +0900)
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>
Documentation/fetch-options.txt
builtin/fetch.c

index 43b9ff3bce218e986e9dabd57a0e7981ff59166a..a2f78624a27e68dfe5a97adcac9cd67c109d1f52 100644 (file)
@@ -92,6 +92,10 @@ ifndef::git-pull[]
        Run `git gc --auto` at the end to perform garbage collection
        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::
 --prune::
        Before fetching, remove any remote-tracking references that no
index 863c858fde9afb3daac09c7ecf83cf44834574d5..8d27f8abb7b67c27caceb979b59cbc0da983d54b 100644 (file)
@@ -77,6 +77,7 @@ static struct refspec refmap = REFSPEC_INIT_FETCH;
 static struct list_objects_filter_options filter_options;
 static struct string_list server_options = STRING_LIST_INIT_DUP;
 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)
 {
@@ -198,6 +199,8 @@ static struct option builtin_fetch_options[] = {
                 N_("run 'gc --auto' after fetching")),
        OPT_BOOL(0, "show-forced-updates", &fetch_show_forced_updates,
                 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()
 };
 
@@ -1865,7 +1868,9 @@ int cmd_fetch(int argc, const char **argv, const char *prefix)
        string_list_clear(&list, 0);
 
        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;
                struct split_commit_graph_opts split_opts;
                memset(&split_opts, 0, sizeof(struct split_commit_graph_opts));