summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeff Hostetler <jeffhost@microsoft.com>2021-10-21 14:24:59 +0000
committerJunio C Hamano <gitster@pobox.com>2021-10-21 13:18:25 -0700
commitcd6d50b3babaea3cba750d880fa7925274c59aae (patch)
tree5cd6e2fcfb71e878610133dba567463214cd494c
parent9623fe916d3fdcbe37f1263bd093cf6a07b681b5 (diff)
help: include fsmonitor--daemon feature flag in version info
Add the "feature: fsmonitor--daemon" message to the output of `git version --build-options`. The builtin FSMonitor is only available on certain platforms and even then only when certain Makefile flags are enabled, so print a message in the verbose version output when it is available. This can be used by test scripts for prereq testing. Granted, tests could just try `git fsmonitor--daemon status` and look for a 128 exit code or grep for a "not supported" message on stderr, but this is rather obscure. The main advantage is that the feature message will automatically appear in bug reports and other support requests. Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--help.c4
-rw-r--r--t/test-lib.sh6
2 files changed, 10 insertions, 0 deletions
diff --git a/help.c b/help.c
index 973e47cdc3..708eed5d9a 100644
--- a/help.c
+++ b/help.c
@@ -12,6 +12,7 @@
#include "refs.h"
#include "parse-options.h"
#include "prompt.h"
+#include "fsmonitor-ipc.h"
struct category_description {
uint32_t category;
@@ -695,6 +696,9 @@ void get_version_info(struct strbuf *buf, int show_build_options)
strbuf_addf(buf, "sizeof-size_t: %d\n", (int)sizeof(size_t));
strbuf_addf(buf, "shell-path: %s\n", SHELL_PATH);
/* NEEDSWORK: also save and output GIT-BUILD_OPTIONS? */
+
+ if (fsmonitor_ipc__is_supported())
+ strbuf_addstr(buf, "feature: fsmonitor--daemon\n");
}
}
diff --git a/t/test-lib.sh b/t/test-lib.sh
index 151da80c56..4013ef8906 100644
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -1736,3 +1736,9 @@ test_lazy_prereq SHA1 '
# Tests that verify the scheduler integration must set this locally
# to avoid errors.
GIT_TEST_MAINT_SCHEDULER="none:exit 1"
+
+# Does this platform support `git fsmonitor--daemon`
+#
+test_lazy_prereq FSMONITOR_DAEMON '
+ git version --build-options | grep "feature:" | grep "fsmonitor--daemon"
+'