Soon, we will allow users to specify hooks using the config. These
config-specified hooks may require different child_process options than
hook executables in the gitdir. So, let's differentiate between hooks
coming from the gitdir and hooks coming from the config.
Signed-off-by: Emily Shaffer <redacted>
---
hook.c | 3 ++-
hook.h | 2 ++
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/hook.c b/hook.c
index 19138a8290..3a588cb055 100644
--- a/hook.c
+++ b/hook.c
@@ -117,6 +117,7 @@ struct list_head* hook_list(const char* hookname)
struct hook *to_add = xmalloc(sizeof(*to_add));
to_add->hook_path = hook_path;
to_add->feed_pipe_cb_data = NULL;
+ to_add->from_hookdir = 1;
list_add_tail(&to_add->list, hook_head);
}
@@ -200,7 +201,7 @@ static int pick_next_hook(struct child_process *cp,
cp->dir = hook_cb->options->dir;
/* add command */
- if (hook_cb->options->absolute_path)
+ if (run_me->from_hookdir && hook_cb->options->absolute_path)
strvec_push(&cp->args, absolute_path(run_me->hook_path));
else
strvec_push(&cp->args, run_me->hook_path);
diff --git a/hook.h b/hook.h
index 586ddf40bb..60389cd8cd 100644
--- a/hook.h
+++ b/hook.h
@@ -22,6 +22,8 @@ struct hook {
/* The path to the hook */
const char *hook_path;
+ unsigned from_hookdir : 1;
+
/*
* Use this to keep state for your feed_pipe_fn if you are using
* run_hooks_opt.feed_pipe. Otherwise, do not touch it.--
2.32.0.402.g57bb445576-goog