Message ID | 90de25d1287595fdedc9dcd194a2e0ac120d4aad.1597857409.git.gitgitgadget@gmail.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | Maintenance III: background maintenance | expand |
On 2020-08-19 17:16:42+0000, Derrick Stolee via GitGitGadget <gitgitgadget@gmail.com> wrote: > From: Derrick Stolee <dstolee@microsoft.com> > @@ -1868,8 +1869,15 @@ int run_processes_parallel_tr2(int n, get_next_task_fn get_next_task, > > int run_auto_maintenance(int quiet) > { > + int enabled; > struct child_process maint = CHILD_PROCESS_INIT; > > + if (!git_config_get_bool("maintenance.auto", &enabled) && > + !enabled) { > + fprintf(stderr, "enabled: %d\n", enabled); > + return 0; > + } Nit: This block of code is mis-indented (mixed space and tab). If we're running into inner block, "enabled" will always be "0" We can just write: fprintf(stderr, "enabled: 0\n"); instead. Writing like that, we have one less thing to worry about (whether "enabled" is initialised in git_config_get_bool or not).
On 8/19/2020 10:06 PM, Đoàn Trần Công Danh wrote: > On 2020-08-19 17:16:42+0000, Derrick Stolee via GitGitGadget <gitgitgadget@gmail.com> wrote: >> From: Derrick Stolee <dstolee@microsoft.com> >> @@ -1868,8 +1869,15 @@ int run_processes_parallel_tr2(int n, get_next_task_fn get_next_task, >> >> int run_auto_maintenance(int quiet) >> { >> + int enabled; >> struct child_process maint = CHILD_PROCESS_INIT; >> >> + if (!git_config_get_bool("maintenance.auto", &enabled) && >> + !enabled) { >> + fprintf(stderr, "enabled: %d\n", enabled); >> + return 0; >> + } > > Nit: This block of code is mis-indented (mixed space and tab). Thanks. > If we're running into inner block, "enabled" will always be "0" > We can just write: > > fprintf(stderr, "enabled: 0\n"); > > instead. Writing like that, we have one less thing to worry about > (whether "enabled" is initialised in git_config_get_bool or not). Whoops! This fprintf shouldn't even be here, but got accidentally added during a debugging session. Thanks for noticing! -Stolee
diff --git a/Documentation/config/maintenance.txt b/Documentation/config/maintenance.txt index a0706d8f09..06db758172 100644 --- a/Documentation/config/maintenance.txt +++ b/Documentation/config/maintenance.txt @@ -1,3 +1,8 @@ +maintenance.auto:: + This boolean config option controls whether some commands run + `git maintenance run --auto` after doing their normal work. Defaults + to true. + maintenance.<task>.enabled:: This boolean config option controls whether the maintenance task with name `<task>` is run when no `--task` option is specified to diff --git a/run-command.c b/run-command.c index 2ee59acdc8..9c9d5d7f98 100644 --- a/run-command.c +++ b/run-command.c @@ -7,6 +7,7 @@ #include "strbuf.h" #include "string-list.h" #include "quote.h" +#include "config.h" void child_process_init(struct child_process *child) { @@ -1868,8 +1869,15 @@ int run_processes_parallel_tr2(int n, get_next_task_fn get_next_task, int run_auto_maintenance(int quiet) { + int enabled; struct child_process maint = CHILD_PROCESS_INIT; + if (!git_config_get_bool("maintenance.auto", &enabled) && + !enabled) { + fprintf(stderr, "enabled: %d\n", enabled); + return 0; + } + maint.git_cmd = 1; strvec_pushl(&maint.args, "maintenance", "run", "--auto", NULL); strvec_push(&maint.args, quiet ? "--quiet" : "--no-quiet"); diff --git a/t/t7900-maintenance.sh b/t/t7900-maintenance.sh index 6f878b0141..e0ba19e1ff 100755 --- a/t/t7900-maintenance.sh +++ b/t/t7900-maintenance.sh @@ -26,6 +26,19 @@ test_expect_success 'run [--auto|--quiet]' ' test_subcommand git gc --no-quiet <run-no-quiet.txt ' +test_expect_success 'maintenance.auto config option' ' + GIT_TRACE2_EVENT="$(pwd)/default" git commit --quiet --allow-empty -m 1 && + test_subcommand git maintenance run --auto --quiet <default && + GIT_TRACE2_EVENT="$(pwd)/true" \ + git -c maintenance.auto=true \ + commit --quiet --allow-empty -m 2 && + test_subcommand git maintenance run --auto --quiet <true && + GIT_TRACE2_EVENT="$(pwd)/false" \ + git -c maintenance.auto=false \ + commit --quiet --allow-empty -m 3 && + test_subcommand ! git maintenance run --auto --quiet <false +' + test_expect_success 'maintenance.<task>.enabled' ' git config maintenance.gc.enabled false && git config maintenance.commit-graph.enabled true &&