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

[PATCH v2 00/11] git_config callers rewritten with the new config-set API

From
Tanay Abhra <tanayabh@gmail.com>
Date
Aug 7, 2014, 16:21 UTC
Message-ID
<1407428486-19049-1-git-send-email-tanayabh@gmail.com>
[v2]: git_die_config() messages changed. Diff between v1 and v2 is at the bottom.
The ta/config-set API is more or less solidified.

This series builds on the top of 4c715ebb in pu (ta/config-set). On top of it, it also requires series [1] (Rewrite `git_config()` using config-set API) for proper error checking.

This series is the first batch of patches which rewrites the existing callers using a non-callback approach. This series aims to,

* rewrite the existing callers, as you can see from the diff stat the bew API
  provides a much concise and clear control flow.
* stress test the new API, see if any corner cases or deficiencies arise or not.

The series passes all the tests, only thing to watch is that the config variables that have been rewritten are single valued only. Though I have tried my best to ascertain it, still mistakes may arise.

[1]: http://thread.gmane.org/gmane.comp.version-control.git/254633/
Tanay Abhra (11):
  daemon.c: replace `git_config()` with `git_config_get_bool()` family
  http-backend.c: replace `git_config()` with `git_config_get_bool()`
    family
  read-cache.c: replace `git_config()` with `git_config_get_*()` family
  archive.c: replace `git_config()` with `git_config_get_bool()` family
  fetchpack.c: replace `git_config()` with `git_config_get_*()` family
  rerere.c: replace `git_config()` with `git_config_get_*()` family
  builtin/gc.c: replace `git_config()` with `git_config_get_*()` family
  pager.c: replace `git_config()` with `git_config_get_value()`
  imap-send.c: replace `git_config()` with `git_config_get_*()` family
  alias.c: replace `git_config()` with `git_config_get_string()`
  branch.c: replace `git_config()` with `git_config_get_string()
 alias.c        | 25 ++++++------------------
 archive.c      | 12 +++---------
 branch.c       | 27 +++++++-------------------
 builtin/gc.c   | 51 ++++++++++++++++++++-----------------------------
 daemon.c       | 26 ++++---------------------
 fetch-pack.c   | 35 ++++++++--------------------------
 http-backend.c | 31 ++++++++++++------------------
 imap-send.c    | 60 +++++++++++++++++++++++++---------------------------------
 pager.c        | 40 +++++++++++++--------------------------
 read-cache.c   | 14 +++-----------
 rerere.c       | 43 ++++++++++++-----------------------------
 11 files changed, 114 insertions(+), 250 deletions(-)
-- 
1.9.0.GIT


-- 8< --
diff --git a/builtin/gc.c b/builtin/gc.c
index 4612ef5..5173657 100644
--- a/builtin/gc.c
+++ b/builtin/gc.c
@@ -76,8 +76,8 @@ static void gc_config(void)
    if (strcmp(prune_expire, "now")) {
      unsigned long now = approxidate("now");
      if (approxidate(prune_expire) >= now) {
-       error(_("Invalid %s: '%s'"), "gc.pruneexpire", prune_expire);
-       git_die_config("gc.pruneexpire");
+       git_die_config("gc.pruneexpire", _("Invalid gc.pruneexpire: '%s'"),
+                       prune_expire);
      }
    }
  }


diff --git a/daemon.c b/daemon.c
index fb16664..6f78b61 100644
--- a/daemon.c
+++ b/daemon.c
@@ -342,7 +342,6 @@ static int run_service(const char *dir, struct daemon_service *service)
    git_config_get_bool(var.buf, &enabled);
    strbuf_release(&var);
  }
-
  if (!enabled) {
    logerror("'%s': service not enabled for '%s'",
       service->name, path);
diff --git a/imap-send.c b/imap-send.c
index 586bdd8..618d75b 100644
--- a/imap-send.c
+++ b/imap-send.c
@@ -1336,8 +1336,7 @@ static void git_imap_config(void)
 
  if (!git_config_get_value("imap.host", &val)) {
    if (!val) {
-     config_error_nonbool("imap.host");
-     git_die_config("imap.host");
+     git_die_config("imap.host", "Missing value for 'imap.host'");
    } else {
      if (starts_with(val, "imap:"))
  val += 5;
-- 8< --
Next: Tanay Abhra
Message 1 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.