From: Derrick Stolee <dstolee@xxxxxxxxxxxxx> The previous change allowed a user to specify a --batch-size=<size> option to 'git run-job pack-files'. However, when we eventually launch these jobs on a schedule, we want users to be able to change this value through config options. The new "job.pack-files.batchSize" option will override the default dynamic batch-size calculation, but will be overridden by the --batch-size=<size> argument. This is the first config option of the type "job.<job-name>.<option>" but is not the last. Signed-off-by: Derrick Stolee <dstolee@xxxxxxxxxxxxx> --- Documentation/config.txt | 2 ++ Documentation/config/job.txt | 6 ++++++ builtin/run-job.c | 7 ++++++- 3 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 Documentation/config/job.txt diff --git a/Documentation/config.txt b/Documentation/config.txt index 2450589a0ed..c4c5fa99e6b 100644 --- a/Documentation/config.txt +++ b/Documentation/config.txt @@ -389,6 +389,8 @@ include::config/instaweb.txt[] include::config/interactive.txt[] +include::config/job.txt[] + include::config/log.txt[] include::config/mailinfo.txt[] diff --git a/Documentation/config/job.txt b/Documentation/config/job.txt new file mode 100644 index 00000000000..efdb76afad3 --- /dev/null +++ b/Documentation/config/job.txt @@ -0,0 +1,6 @@ +job.pack-files.batchSize:: + This string value `<size>` will be passed to the + `git multi-pack-index repack --batch-size=<size>` command as + part of `git run-job pack-files`. If not specified, then a + dynamic size calculation is run. See linkgit:git-run-job[1] + for more details. diff --git a/builtin/run-job.c b/builtin/run-job.c index 2ccc3bbae2d..76765535e09 100644 --- a/builtin/run-job.c +++ b/builtin/run-job.c @@ -327,6 +327,7 @@ static int multi_pack_index_repack(unsigned long batch_size) int result; struct argv_array cmd = ARGV_ARRAY_INIT; struct strbuf batch_arg = STRBUF_INIT; + const char *config_value; int count; off_t default_size = get_auto_pack_size(&count); @@ -336,7 +337,11 @@ static int multi_pack_index_repack(unsigned long batch_size) strbuf_addstr(&batch_arg, "--batch-size="); if (batch_size != UNSET_BATCH_SIZE) - strbuf_addf(&batch_arg, "\"%"PRIuMAX"\"", (uintmax_t)batch_size); + strbuf_addf(&batch_arg, "\"%"PRIuMAX"\"", (uintmax_t) batch_size); + else if (!repo_config_get_string_const(the_repository, + "job.pack-file.batchsize", + &config_value)) + strbuf_addf(&batch_arg, "\"%s\"", config_value); else strbuf_addf(&batch_arg, "%"PRIuMAX, (uintmax_t)default_size); -- gitgitgadget