]> git.ipfire.org Git - thirdparty/git.git/commitdiff
help: include fsmonitor--daemon feature flag in version info
authorJeff Hostetler <jeffhost@microsoft.com>
Fri, 25 Mar 2022 18:03:02 +0000 (18:03 +0000)
committerJunio C Hamano <gitster@pobox.com>
Fri, 25 Mar 2022 23:04:16 +0000 (16:04 -0700)
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 these
methods are rather obscure.

The main advantage is that the feature message will automatically
appear in bug reports and other support requests.

This concept was also used during the development of Scalar for
similar reasons.

Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
help.c
t/test-lib.sh

diff --git a/help.c b/help.c
index 71444906ddfb24c6604a2da547cb94675553bcb0..9112a51e84beb5eb4d5913f8ee015443af1b7e2c 100644 (file)
--- 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");
        }
 }
 
index e4716b0b867fcbdf9f2438523a8b4ca5098f1ecc..5d819c1bc11c34d37e1eadb8f5f4dbfd0645507c 100644 (file)
@@ -1799,3 +1799,10 @@ 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 >output &&
+       grep "feature: fsmonitor--daemon" output
+'