update-index: add untracked cache notifications

Attempting to flip the untracked-cache feature on for a random index file with cd /random/unrelated/place git --git-dir=/somewhere/else/.git update-index --untracked-cache would not work as you might expect. Because flipping the feature on in the index also records the location of the corresponding working tree (/random/unrelated/place in the above example), when the index is subsequently used to keep track of files in the working tree in /somewhere/else, the feature is disabled. With this patch "git update-index --[test-]untracked-cache" tells the user in which directory tests are performed. This makes it easy to spot any problem. Also in verbose mode, let's tell the user when the cache is enabled or disabled. Helped-by: Duy Nguyen <pclouds@gmail.com> Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Christian Couder committed Jan 24, 2016 at 16:28 UTC 6d19db1491f1f48c5112f460e1f2d2e359e113c9
1 file changed +9 -5
builtin/update-index.c
+9 -5
@@ -130,7 +130,7 @@ static int test_if_untracked_cache_is_supported(void)
130 if (!mkdtemp(mtime_dir.buf))
131 die_errno("Could not make temporary directory");
132
133 - fprintf(stderr, _("Testing "));
133 + fprintf(stderr, _("Testing mtime in '%s' "), xgetcwd());
134 atexit(remove_test_directory);
135 xstat_mtime_dir(&st);
136 fill_stat_data(&base, &st);
@@ -1135,10 +1135,14 @@ int cmd_update_index(int argc, const char **argv, const char *prefix)
1135 }
1136 add_untracked_ident(the_index.untracked);
1137 the_index.cache_changed |= UNTRACKED_CHANGED;
1138 - } else if (untracked_cache == UC_DISABLE && the_index.untracked) {
1139 - free_untracked_cache(the_index.untracked);
1140 - the_index.untracked = NULL;
1141 - the_index.cache_changed |= UNTRACKED_CHANGED;
1138 + report(_("Untracked cache enabled for '%s'"), get_git_work_tree());
1139 + } else if (untracked_cache == UC_DISABLE) {
1140 + if (the_index.untracked) {
1141 + free_untracked_cache(the_index.untracked);
1142 + the_index.untracked = NULL;
1143 + the_index.cache_changed |= UNTRACKED_CHANGED;
1144 + }
1145 + report(_("Untracked cache disabled"));
1146 }
1147
1148 if (active_cache_changed) {