diff options
author | Ben Peart <benpeart@microsoft.com> | 2019-02-15 18:59:21 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2019-02-15 20:00:33 +0100 |
commit | 1956ecd0ab26dea9c3ed6b9afe334101d9d12f60 (patch) | |
tree | 730cebe0459631dfcfebc1203300cd5d6c7ae468 /read-cache.c | |
parent | Git 2.21-rc1 (diff) | |
download | git-1956ecd0ab26dea9c3ed6b9afe334101d9d12f60.tar.xz git-1956ecd0ab26dea9c3ed6b9afe334101d9d12f60.zip |
read-cache: add post-index-change hook
Add a post-index-change hook that is invoked after the index is written in
do_write_locked_index().
This hook is meant primarily for notification, and cannot affect
the outcome of git commands that trigger the index write.
The hook is passed a flag to indicate whether the working directory was
updated or not and a flag indicating if a skip-worktree bit could have
changed. These flags enable the hook to optimize its response to the
index change notification.
Signed-off-by: Ben Peart <benpeart@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'read-cache.c')
-rw-r--r-- | read-cache.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/read-cache.c b/read-cache.c index 0e0c93edc9..862bdf383d 100644 --- a/read-cache.c +++ b/read-cache.c @@ -17,6 +17,7 @@ #include "commit.h" #include "blob.h" #include "resolve-undo.h" +#include "run-command.h" #include "strbuf.h" #include "varint.h" #include "split-index.h" @@ -2999,8 +3000,17 @@ static int do_write_locked_index(struct index_state *istate, struct lock_file *l if (ret) return ret; if (flags & COMMIT_LOCK) - return commit_locked_index(lock); - return close_lock_file_gently(lock); + ret = commit_locked_index(lock); + 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); + istate->updated_workdir = 0; + istate->updated_skipworktree = 0; + + return ret; } static int write_split_index(struct index_state *istate, |