update-index: add --test-untracked-cache
authorChristian Couder <christian.couder@gmail.com>
Sun, 24 Jan 2016 15:28:16 +0000 (16:28 +0100)
committerJunio C Hamano <gitster@pobox.com>
Mon, 25 Jan 2016 20:39:22 +0000 (12:39 -0800)
It is nice to just be able to test if untracked cache is
supported without enabling it.

Helped-by: David Turner <dturner@twopensource.com>
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-update-index.txt
builtin/update-index.c
index f4e5a85351d7a7fdda24ac497560f59ccdb6ef7b..a0afe17450fabb4dccf60f033301eced64c13d7c 100644 (file)
@@ -18,7 +18,7 @@ SYNOPSIS
             [--[no-]skip-worktree]
             [--ignore-submodules]
             [--[no-]split-index]
-            [--[no-|force-]untracked-cache]
+            [--[no-|test-|force-]untracked-cache]
             [--really-refresh] [--unresolve] [--again | -g]
             [--info-only] [--index-info]
             [-z] [--stdin] [--index-version <n>]
@@ -180,6 +180,16 @@ may not support it yet.
        system must change `st_mtime` field of a directory if files
        are added or deleted in that directory.
 
+--test-untracked-cache::
+       Only perform tests on the working directory to make sure
+       untracked cache can be used. You have to manually enable
+       untracked cache using `--force-untracked-cache` (or
+       `--untracked-cache` but this will run the tests again)
+       afterwards if you really want to use it. If a test fails
+       the exit code is 1 and a message explains what is not
+       working as needed, otherwise the exit code is 0 and OK is
+       printed.
+
 --force-untracked-cache::
        For safety, `--untracked-cache` performs tests on the working
        directory to make sure untracked cache can be used. These
index 1e546a3b3c22542711b4c5f2651ee8847f7fb368..62222dd8c73aadd762305f6a8be0a714c3055a9a 100644 (file)
@@ -40,6 +40,7 @@ enum uc_mode {
        UC_UNSPECIFIED = -1,
        UC_DISABLE = 0,
        UC_ENABLE,
+       UC_TEST,
        UC_FORCE
 };
 
@@ -1004,6 +1005,8 @@ int cmd_update_index(int argc, const char **argv, const char *prefix)
                        N_("enable or disable split index")),
                OPT_BOOL(0, "untracked-cache", &untracked_cache,
                        N_("enable/disable untracked cache")),
+               OPT_SET_INT(0, "test-untracked-cache", &untracked_cache,
+                           N_("test if the filesystem supports untracked cache"), UC_TEST),
                OPT_SET_INT(0, "force-untracked-cache", &untracked_cache,
                            N_("enable untracked cache without testing the filesystem"), UC_FORCE),
                OPT_END()
@@ -1119,6 +1122,8 @@ int cmd_update_index(int argc, const char **argv, const char *prefix)
                        setup_work_tree();
                        if (!test_if_untracked_cache_is_supported())
                                return 1;
+                       if (untracked_cache == UC_TEST)
+                               return 0;
                }
                if (!the_index.untracked) {
                        uc = xcalloc(1, sizeof(*uc));