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

[PATCH v2 15/21] config: add git_config_get_expiry() from gc.c

From
Christian Couder <christian.couder@gmail.com>
Date
Dec 17, 2016, 14:55 UTC
Message-ID
<20161217145547.11748-16-chriscool@tuxfamily.org>
In-Reply-To
<20161217145547.11748-1-chriscool@tuxfamily.org>

This function will be used in a following commit to get the expiration time of the shared index files from the config, and it is generic enough to be put in "config.c".

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
---
 builtin/gc.c | 15 ++-------------
 cache.h      |  3 +++
 config.c     | 13 +++++++++++++
 3 files changed, 18 insertions(+), 13 deletions(-)
diff --git a/builtin/gc.c b/builtin/gc.c
index 069950d0b4..1e40d45aa2 100644
--- a/builtin/gc.c
+++ b/builtin/gc.c
@@ -62,17 +62,6 @@ static void report_pack_garbage(unsigned seen_bits, const char *path)
 		string_list_append(&pack_garbage, path);
 }
 
-static void git_config_date_string(const char *key, const char **output)
-{
-	if (git_config_get_string_const(key, output))
-		return;
-	if (strcmp(*output, "now")) {
-		unsigned long now = approxidate("now");
-		if (approxidate(*output) >= now)
-			git_die_config(key, _("Invalid %s: '%s'"), key, *output);
-	}
-}
-
 static void process_log_file(void)
 {
 	struct stat st;
@@ -111,8 +100,8 @@ static void gc_config(void)
 	git_config_get_int("gc.auto", &gc_auto_threshold);
 	git_config_get_int("gc.autopacklimit", &gc_auto_pack_limit);
 	git_config_get_bool("gc.autodetach", &detach_auto);
-	git_config_date_string("gc.pruneexpire", &prune_expire);
-	git_config_date_string("gc.worktreepruneexpire", &prune_worktrees_expire);
+	git_config_get_expiry("gc.pruneexpire", &prune_expire);
+	git_config_get_expiry("gc.worktreepruneexpire", &prune_worktrees_expire);
 	git_config(git_default_config, NULL);
 }
 
diff --git a/cache.h b/cache.h
index f442f28189..279415afbd 100644
--- a/cache.h
+++ b/cache.h
@@ -1827,6 +1827,9 @@ extern int git_config_get_untracked_cache(void);
 extern int git_config_get_split_index(void);
 extern int git_config_get_max_percent_split_change(void);
 
+/* This dies if the configured or default date is in the future */
+extern int git_config_get_expiry(const char *key, const char **output);
+
 /*
  * This is a hack for test programs like test-dump-untracked-cache to
  * ensure that they do not modify the untracked cache when reading it.
diff --git a/config.c b/config.c
index 3e96c223f5..5c52cefd78 100644
--- a/config.c
+++ b/config.c
@@ -1685,6 +1685,19 @@ int git_config_get_pathname(const char *key, const char **dest)
 	return ret;
 }
 
+int git_config_get_expiry(const char *key, const char **output)
+{
+	int ret = git_config_get_string_const(key, output);
+	if (ret)
+		return ret;
+	if (strcmp(*output, "now")) {
+		unsigned long now = approxidate("now");
+		if (approxidate(*output) >= now)
+			git_die_config(key, _("Invalid %s: '%s'"), key, *output);
+	}
+	return ret;
+}
+
 int git_config_get_untracked_cache(void)
 {
 	int val = -1;
-- 
2.11.0.49.g2414764.dirty
Previous: Christian CouderNext: Christian Couder
Message 22 of 34 in “Add configuration options for split-index”
  1. 00/21 Add configuration options for split-indexChristian Couder, Dec 17, 2016
  2. 01/21 config: mark an error message up for translationChristian Couder, Dec 17, 2016
  3. 02/21 config: add git_config_get_split_index()Christian Couder, Dec 17, 2016
  4. Duy NguyenDec 19, 2016
  5. Christian CouderDec 26, 2016
  6. 06/21 t1700: add tests for core.splitIndexChristian Couder, Dec 17, 2016
  7. 09/21 config: add git_config_get_max_percent_split_change()Christian Couder, Dec 17, 2016
  8. 08/21 Documentation/git-update-index: talk about core.splitIndex config varChristian Couder, Dec 17, 2016
  9. 12/21 Documentation/config: add splitIndex.maxPercentChangeChristian Couder, Dec 17, 2016
  10. 14/21 read-cache: touch shared index files when usedChristian Couder, Dec 17, 2016
  11. 16/21 read-cache: unlink old sharedindex filesChristian Couder, Dec 17, 2016
  12. Duy NguyenDec 19, 2016
  13. Christian CouderDec 26, 2016
  14. 17/21 t1700: test shared index file expirationChristian Couder, Dec 17, 2016
  15. 19/21 read-cache: use freshen_shared_index() in read_index_from()Christian Couder, Dec 17, 2016
  16. 21/21 Documentation/git-update-index: explain splitIndex.*Christian Couder, Dec 17, 2016
  17. 20/21 Documentation/config: add splitIndex.sharedIndexExpireChristian Couder, Dec 17, 2016
  18. 11/21 t1700: add tests for splitIndex.maxPercentChangeChristian Couder, Dec 17, 2016
  19. 05/21 update-index: warn in case of split-index incoherencyChristian Couder, Dec 17, 2016
  20. 13/21 sha1_file: make check_and_freshen_file() non staticChristian Couder, Dec 17, 2016
  21. 18/21 read-cache: refactor read_index_from()Christian Couder, Dec 17, 2016
  22. 15/21 config: add git_config_get_expiry() from gc.cChristian Couder, Dec 17, 2016
  23. 10/21 read-cache: regenerate shared index if necessaryChristian Couder, Dec 17, 2016
  24. Duy NguyenDec 19, 2016
  25. Christian CouderDec 26, 2016
  26. 04/21 read-cache: add and then use tweak_split_index()Christian Couder, Dec 17, 2016
  27. Duy NguyenDec 19, 2016
  28. Christian CouderDec 26, 2016
  29. 03/21 split-index: add {add,remove}_split_index() functionsChristian Couder, Dec 17, 2016
  30. 07/21 Documentation/config: add information for core.splitIndexChristian Couder, Dec 17, 2016
  31. Christian CouderDec 17, 2016
  32. Duy NguyenDec 19, 2016
  33. Junio C HamanoDec 19, 2016
  34. Christian CouderDec 26, 2016

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.