[PATCH 06/17] read-cache: convert post-index-change hook to use config
- From
Emily Shaffer <emilyshaffer@google.com>
- Date
- Dec 5, 2020, 01:49 UTC
- Message-ID
- <20201205014945.1502660-7-emilyshaffer@google.com>
- In-Reply-To
- <20201205014945.1502660-1-emilyshaffer@google.com>
By using hook.h instead of run-command.h to run, post-index-change hooks can now be specified in the config in addition to the hookdir. post-index-change is not run anywhere besides in read-cache.c.
Signed-off-by: Emily Shaffer <emilyshaffer@google.com> --- Documentation/githooks.txt | 2 ++ read-cache.c | 12 +++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/Documentation/githooks.txt b/Documentation/githooks.txt index 5dc0690607..8249ecec5f 100644 --- a/Documentation/githooks.txt +++ b/Documentation/githooks.txt @@ -711,6 +711,8 @@ and "0" meaning they were not. Only one parameter should be set to "1" when the hook runs. The hook running passing "1", "1" should not be possible. +Hooks run during 'post-index-change' will be run in parallel by default. + GIT --- Part of the linkgit:git[1] suite diff --git a/read-cache.c b/read-cache.c index ecf6f68994..dcfc080aaa 100644 --- a/read-cache.c +++ b/read-cache.c @@ -25,6 +25,7 @@ #include "fsmonitor.h" #include "thread-utils.h" #include "progress.h" +#include "hook.h" /* Mask for the name length in ce_flags in the on-disk index */ @@ -3052,6 +3053,7 @@ static int do_write_locked_index(struct index_state *istate, struct lock_file *l unsigned flags) { int ret; + struct run_hooks_opt hook_opt = RUN_HOOKS_OPT_INIT_ASYNC; /* * TODO trace2: replace "the_repository" with the actual repo instance @@ -3070,9 +3072,13 @@ static int do_write_locked_index(struct index_state *istate, struct lock_file *l else ret = close_lock_file_gently(lock); - run_hook_le(NULL, "post-index-change", - istate->updated_workdir ? "1" : "0", - istate->updated_skipworktree ? "1" : "0", NULL); + strvec_pushl(&hook_opt.args, + istate->updated_workdir ? "1" : "0", + istate->updated_skipworktree ? "1" : "0", + NULL); + run_hooks("post-index-change", &hook_opt); + run_hooks_opt_clear(&hook_opt); + istate->updated_workdir = 0; istate->updated_skipworktree = 0;
-- 2.28.0.rc0.142.g3c755180ce-goog