mirror of
https://github.com/git/git.git
synced 2026-01-08 09:13:48 +00:00
hook: allow overriding the ungroup option
When calling run_process_parallel() in run_hooks_opt(), the ungroup option is currently hardcoded to .ungroup = 1. This causes problems when ungrouping should be disabled, for example when sideband-reading collated output from child hooks, because sideband-reading and ungrouping are mutually exclusive. Thus a new hook.h option is added to allow overriding. The existing ungroup=1 behavior is preserved in the run_hooks() API and the "hook run" command. We could modify these to take an option if necessary, so I added two code comments there. Signed-off-by: Adrian Ratiu <adrian.ratiu@collabora.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
7a7717427e
commit
857f047e40
@@ -43,6 +43,12 @@ static int run(int argc, const char **argv, const char *prefix,
|
||||
if (!argc)
|
||||
goto usage;
|
||||
|
||||
/*
|
||||
* All current "hook run" use-cases require ungrouped child output.
|
||||
* If this changes, a hook run argument can be added to toggle it.
|
||||
*/
|
||||
opt.ungroup = 1;
|
||||
|
||||
/*
|
||||
* Having a -- for "run" when providing <hook-args> is
|
||||
* mandatory.
|
||||
|
||||
3
commit.c
3
commit.c
@@ -1965,6 +1965,9 @@ int run_commit_hook(int editor_is_used, const char *index_file,
|
||||
strvec_push(&opt.args, arg);
|
||||
va_end(args);
|
||||
|
||||
/* All commit hook use-cases require ungrouping child output. */
|
||||
opt.ungroup = 1;
|
||||
|
||||
opt.invoked_hook = invoked_hook;
|
||||
return run_hooks_opt(the_repository, name, &opt);
|
||||
}
|
||||
|
||||
5
hook.c
5
hook.c
@@ -153,7 +153,7 @@ int run_hooks_opt(struct repository *r, const char *hook_name,
|
||||
.tr2_label = hook_name,
|
||||
|
||||
.processes = 1,
|
||||
.ungroup = 1,
|
||||
.ungroup = options->ungroup,
|
||||
|
||||
.get_next_task = pick_next_hook,
|
||||
.start_failure = notify_start_failure,
|
||||
@@ -198,6 +198,9 @@ int run_hooks(struct repository *r, const char *hook_name)
|
||||
{
|
||||
struct run_hooks_opt opt = RUN_HOOKS_OPT_INIT;
|
||||
|
||||
/* All use-cases of this API require ungrouping. */
|
||||
opt.ungroup = 1;
|
||||
|
||||
return run_hooks_opt(r, hook_name, &opt);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user