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

[PATCH v2 06/11] rerere.c: replace `git_config()` with `git_config_get_*()` family

From
Tanay Abhra <tanayabh@gmail.com>
Date
Aug 7, 2014, 16:21 UTC
Message-ID
<1407428486-19049-7-git-send-email-tanayabh@gmail.com>
In-Reply-To
<1407428486-19049-1-git-send-email-tanayabh@gmail.com>

Use `git_config_get_*()` family instead of `git_config()` to take advantage of the config-set API which provides a cleaner control flow.

Signed-off-by: Tanay Abhra <tanayabh@gmail.com>
---
 rerere.c | 43 ++++++++++++-------------------------------
 1 file changed, 12 insertions(+), 31 deletions(-)
diff --git a/rerere.c b/rerere.c
index d84b495..20b18ad 100644
--- a/rerere.c
+++ b/rerere.c
@@ -573,15 +573,11 @@ static int do_plain_rerere(struct string_list *rr, int fd)
 	return write_rr(rr, fd);
 }
 
-static int git_rerere_config(const char *var, const char *value, void *cb)
+static void git_rerere_config(void)
 {
-	if (!strcmp(var, "rerere.enabled"))
-		rerere_enabled = git_config_bool(var, value);
-	else if (!strcmp(var, "rerere.autoupdate"))
-		rerere_autoupdate = git_config_bool(var, value);
-	else
-		return git_default_config(var, value, cb);
-	return 0;
+	git_config_get_bool("rerere.enabled", &rerere_enabled);
+	git_config_get_bool("rerere.autoupdate", &rerere_autoupdate);
+	git_config(git_default_config, NULL);
 }
 
 static int is_rerere_enabled(void)
@@ -606,7 +602,7 @@ int setup_rerere(struct string_list *merge_rr, int flags)
 {
 	int fd;
 
-	git_config(git_rerere_config, NULL);
+	git_rerere_config();
 	if (!is_rerere_enabled())
 		return -1;
 
@@ -699,24 +695,6 @@ static void unlink_rr_item(const char *name)
 	rmdir(git_path("rr-cache/%s", name));
 }
 
-struct rerere_gc_config_cb {
-	int cutoff_noresolve;
-	int cutoff_resolve;
-};
-
-static int git_rerere_gc_config(const char *var, const char *value, void *cb)
-{
-	struct rerere_gc_config_cb *cf = cb;
-
-	if (!strcmp(var, "gc.rerereresolved"))
-		cf->cutoff_resolve = git_config_int(var, value);
-	else if (!strcmp(var, "gc.rerereunresolved"))
-		cf->cutoff_noresolve = git_config_int(var, value);
-	else
-		return git_default_config(var, value, cb);
-	return 0;
-}
-
 void rerere_gc(struct string_list *rr)
 {
 	struct string_list to_remove = STRING_LIST_INIT_DUP;
@@ -724,9 +702,12 @@ void rerere_gc(struct string_list *rr)
 	struct dirent *e;
 	int i, cutoff;
 	time_t now = time(NULL), then;
-	struct rerere_gc_config_cb cf = { 15, 60 };
+	int cutoff_noresolve = 15;
+	int cutoff_resolve = 60;
 
-	git_config(git_rerere_gc_config, &cf);
+	git_config_get_int("gc.rerereresolved", &cutoff_resolve);
+	git_config_get_int("gc.rerereunresolved", &cutoff_noresolve);
+	git_config(git_default_config, NULL);
 	dir = opendir(git_path("rr-cache"));
 	if (!dir)
 		die_errno("unable to open rr-cache directory");
@@ -736,12 +717,12 @@ void rerere_gc(struct string_list *rr)
 
 		then = rerere_last_used_at(e->d_name);
 		if (then) {
-			cutoff = cf.cutoff_resolve;
+			cutoff = cutoff_resolve;
 		} else {
 			then = rerere_created_at(e->d_name);
 			if (!then)
 				continue;
-			cutoff = cf.cutoff_noresolve;
+			cutoff = cutoff_noresolve;
 		}
 		if (then < now - cutoff * 86400)
 			string_list_append(&to_remove, e->d_name);
-- 
1.9.0.GIT
Previous: Tanay AbhraNext: Tanay Abhra
Message 7 of 16 in “git_config callers rewritten with the new config-set API”
  1. 00/11 git_config callers rewritten with the new config-set APITanay Abhra, Aug 7, 2014
  2. 01/11 daemon.c: replace `git_config()` with `git_config_get_bool()` familyTanay Abhra, Aug 7, 2014
  3. 02/11 http-backend.c: replace `git_config()` with `git_config_get_bool()` familyTanay Abhra, Aug 7, 2014
  4. 03/11 read-cache.c: replace `git_config()` with `git_config_get_*()` familyTanay Abhra, Aug 7, 2014
  5. 04/11 archive.c: replace `git_config()` with `git_config_get_bool()` familyTanay Abhra, Aug 7, 2014
  6. 05/11 fetchpack.c: replace `git_config()` with `git_config_get_*()` familyTanay Abhra, Aug 7, 2014
  7. 06/11 rerere.c: replace `git_config()` with `git_config_get_*()` familyTanay Abhra, Aug 7, 2014
  8. 07/11 builtin/gc.c: replace `git_config()` with `git_config_get_*()` familyTanay Abhra, Aug 7, 2014
  9. 08/11 pager.c: replace `git_config()` with `git_config_get_value()`Tanay Abhra, Aug 7, 2014
  10. 09/11 imap-send.c: replace `git_config()` with `git_config_get_*()` familyTanay Abhra, Aug 7, 2014
  11. 10/11 alias.c: replace `git_config()` with `git_config_get_string()`Tanay Abhra, Aug 7, 2014
  12. 11/11 branch.c: replace `git_config()` with `git_config_get_string()Tanay Abhra, Aug 7, 2014
  13. Matthieu MoyAug 7, 2014
  14. 11/11 branch.c: replace `git_config()` with `git_config_get_string()Tanay Abhra, Aug 7, 2014
  15. Matthieu MoyAug 7, 2014
  16. Junio C HamanoAug 7, 2014

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.