[PATCH 3/6] fsmonitor: Update helper tool, now that flags are filled later
From: Alex Vandiver <hidden>
Date: 2017-12-19 00:29:48
Subsystem:
the rest · Maintainer:
Linus Torvalds
dd9005a0a ("fsmonitor: delay updating state until after split index is
merged", 2017-10-27) began deferring the setting of the
CE_FSMONITOR_VALID flag until later, such that do_read_index() does
not perform those steps. This means that t/helper/test-dump-fsmonitor
showed all bits as always unset.
Split out the code which inflates the ewah into CE_FSMONITOR_VALID
bits, and call that from t/helper/test-dump-fsmonitor. We cannot
simply switch the code to call read_index_from or the more specific
tweak_fsmonitor, because the latter would modify the extension state
by calling add_fsmonitor.
Signed-off-by: Alex Vandiver <redacted>
---
fsmonitor.c | 9 ++++++++-
fsmonitor.h | 6 ++++++
t/helper/test-dump-fsmonitor.c | 2 ++
3 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/fsmonitor.c b/fsmonitor.c
index 0af7c4edb..7011dff15 100644
--- a/fsmonitor.c
+++ b/fsmonitor.c@@ -227,7 +227,7 @@ void remove_fsmonitor(struct index_state *istate) } } -void tweak_fsmonitor(struct index_state *istate) +void inflate_fsmonitor_ewah(struct index_state *istate) { int i; int fsmonitor_enabled = git_config_get_fsmonitor();
@@ -250,6 +250,13 @@ void tweak_fsmonitor(struct index_state *istate) ewah_free(istate->fsmonitor_dirty); istate->fsmonitor_dirty = NULL; } +} + +void tweak_fsmonitor(struct index_state *istate) +{ + int fsmonitor_enabled = git_config_get_fsmonitor(); + + inflate_fsmonitor_ewah(istate); switch (fsmonitor_enabled) { case -1: /* keep: do nothing */
diff --git a/fsmonitor.h b/fsmonitor.h
index 5f68ca4d2..619852d4b 100644
--- a/fsmonitor.h
+++ b/fsmonitor.h@@ -28,6 +28,12 @@ extern void write_fsmonitor_extension(struct strbuf *sb, struct index_state *ist extern void add_fsmonitor(struct index_state *istate); extern void remove_fsmonitor(struct index_state *istate); +/* + * Inflate the fsmonitor_dirty ewah into the CE_FSMONITOR_VALID bits. + * Called by tweak_fsmonitor. + */ +extern void inflate_fsmonitor_ewah(struct index_state *istate); + /* * Add/remove the fsmonitor index extension as necessary based on the current * core.fsmonitor setting.
diff --git a/t/helper/test-dump-fsmonitor.c b/t/helper/test-dump-fsmonitor.c
index ad452707e..53b19b39b 100644
--- a/t/helper/test-dump-fsmonitor.c
+++ b/t/helper/test-dump-fsmonitor.c@@ -1,4 +1,5 @@ #include "cache.h" +#include "fsmonitor.h" int cmd_main(int ac, const char **av) {
@@ -8,6 +9,7 @@ int cmd_main(int ac, const char **av) setup_git_directory(); if (do_read_index(istate, get_index_file(), 0) < 0) die("unable to read index file"); + inflate_fsmonitor_ewah(istate); if (!istate->fsmonitor_last_update) { printf("no fsmonitor\n"); return 0;
--
2.15.1.626.gc4617b774