git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[RFC/PATCH 7/8] update-index: prevent --untracked-cache from performing tests

From
Christian Couder <christian.couder@gmail.com>
Date
Dec 1, 2015, 20:31 UTC
Message-ID
<1449001899-18956-8-git-send-email-chriscool@tuxfamily.org>
In-Reply-To
<1449001899-18956-1-git-send-email-chriscool@tuxfamily.org>

`git update-index --untracked-cache` used to perform tests to check that the underlying operating system and file system change `st_mtime` field of a directory if files are added or deleted in that directory. But those tests take a long time and there is now `--test-untracked-cache` to perform them.

So to be more consistent with other git commands it's better to make `--untracked-cache` not perform them, which is the purpose of this patch.

Note that after this patch there is no difference any more between `--untracked-cache` and `--force-untracked-cache`.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
---
 Documentation/git-update-index.txt | 31 ++++++++++++++++---------------
 builtin/update-index.c             |  7 ++-----
 t/t7063-status-untracked-cache.sh  |  2 +-
 3 files changed, 19 insertions(+), 21 deletions(-)
diff --git a/Documentation/git-update-index.txt b/Documentation/git-update-index.txt
index 4e6078b..5f74cc7 100644
--- a/Documentation/git-update-index.txt
+++ b/Documentation/git-update-index.txt
@@ -175,27 +175,28 @@ may not support it yet.
 --no-untracked-cache::
 	Enable or disable untracked cache extension. This could speed
 	up for commands that involve determining untracked files such
-	as `git status`. The underlying operating system and file
-	system must change `st_mtime` field of a directory if files
-	are added or deleted in that directory. If you want to always
-	enable, or always disable, untracked cache, you can set the
-	`core.untrackedCache` configuration variable to 'true' or
-	'false' respectively, (see linkgit:git-config[1]).
+	as `git status`.
++
+The underlying operating system and file system must change `st_mtime`
+field of a directory if files are added or deleted in that
+directory. You can test that using
+`--test-untracked-cache`. `--untracked-cache` used to test that too
+but it doesn't anymore. If you want to always enable, or always
+disable, untracked cache, you can set the `core.untrackedCache`
+configuration variable to 'true' or 'false' respectively, (see
+linkgit:git-config[1]).
 
 --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.
+	untracked cache using `--untracked-cache` or
+	`--force-untracked-cache` afterwards if you really want to use
+	it.
 
 --force-untracked-cache::
-	For safety, `--untracked-cache` performs tests on the working
-	directory to make sure untracked cache can be used. These
-	tests can take a few seconds. `--force-untracked-cache` can be
-	used to skip the tests. It cannot enable untracked cache if
-	`core.untrackedCache` configuration variable is set to false
-	(see linkgit:git-config[1]).
+	Same as `--untracked-cache`. Note that this option cannot
+	enable untracked cache if `core.untrackedCache` configuration
+	variable is set to false (see linkgit:git-config[1]).
 
 \--::
 	Do not interpret any more arguments as options.
diff --git a/builtin/update-index.c b/builtin/update-index.c
index bf697a5..fb0ea3d 100644
--- a/builtin/update-index.c
+++ b/builtin/update-index.c
@@ -1106,12 +1106,9 @@ int cmd_update_index(int argc, const char **argv, const char *prefix)
 		the_index.split_index = NULL;
 		the_index.cache_changed |= SOMETHING_CHANGED;
 	}
-	if (untracked_cache == 2 || (untracked_cache == 1 && use_untracked_cache == -1)) {
+	if (untracked_cache == 2) {
 		setup_work_tree();
-		if (!test_if_untracked_cache_is_supported())
-			return 1;
-		if (untracked_cache == 2)
-			return 0;
+		return !test_if_untracked_cache_is_supported();
 	}
 	if (untracked_cache > 0) {
 		if (!use_untracked_cache)
diff --git a/t/t7063-status-untracked-cache.sh b/t/t7063-status-untracked-cache.sh
index 0e8d0d4..8c3e703 100755
--- a/t/t7063-status-untracked-cache.sh
+++ b/t/t7063-status-untracked-cache.sh
@@ -11,7 +11,7 @@ avoid_racy() {
 # It's fine if git update-index returns an error code other than one,
 # it'll be caught in the first test.
 test_lazy_prereq UNTRACKED_CACHE '
-	{ git update-index --untracked-cache; ret=$?; } &&
+	{ git update-index --test-untracked-cache; ret=$?; } &&
 	test $ret -ne 1
 '
 
-- 
2.6.3.391.g95a3a5c
Previous: Christian CouderNext: Duy Nguyen
Message 19 of 24 in “Untracked cache improvements”
  1. 0/8 Untracked cache improvementsChristian Couder, Dec 1, 2015
  2. 1/8 update-index: add untracked cache notificationsChristian Couder, Dec 1, 2015
  3. Duy NguyenDec 2, 2015
  4. Christian CouderDec 7, 2015
  5. Duy NguyenDec 7, 2015
  6. 2/8 update-index: add --test-untracked-cacheChristian Couder, Dec 1, 2015
  7. Duy NguyenDec 2, 2015
  8. Christian CouderDec 7, 2015
  9. 3/8 update-index: move 'uc' var declarationChristian Couder, Dec 1, 2015
  10. 4/8 dir: add add_untracked_cache()Christian Couder, Dec 1, 2015
  11. 5/8 dir: add remove_untracked_cache()Christian Couder, Dec 1, 2015
  12. 6/8 config: add core.untrackedCacheChristian Couder, Dec 1, 2015
  13. Torsten BögershausenDec 2, 2015
  14. Ævar Arnfjörð BjarmasonDec 2, 2015
  15. Torsten BögershausenDec 3, 2015
  16. Christian CouderDec 3, 2015
  17. Torsten BögershausenDec 4, 2015
  18. Christian CouderDec 4, 2015
  19. 7/8 update-index: prevent --untracked-cache from performing testsChristian Couder, Dec 1, 2015
  20. Duy NguyenDec 2, 2015
  21. Christian CouderDec 7, 2015
  22. 8/8 update-index: make core.untrackedCache a boolChristian Couder, Dec 1, 2015
  23. Torsten BögershausenDec 5, 2015
  24. Christian CouderDec 7, 2015

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.