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

Re: [PATCH v3?] Add global and system-wide gitattributes

From
Matthieu Moy <matthieu.moy@grenoble-inp.fr>
Date
Aug 30, 2010, 08:26 UTC
Message-ID
<vpqvd6sik0n.fsf@bauges.imag.fr>
In-Reply-To
<7vzkw4edc5.fsf@alter.siamese.dyndns.org>
Junio C Hamano <gitster@pobox.com> writes:
Show 13 quoted lines
> Štěpán Němec <stepnem@gmail.com> writes:
>
>> Thanks, Matthieu!
>>
>> Petr's original patch doesn't apply cleanly due to a bogus context line
>> after a recent change in Makefile. For convenience, below is the updated
>> patch including Matthieu's changes applicable to current master.
>>
>> And FWIW (I didn't try to build the documentation, though):
>>
>> Tested-by: Štěpán Němec <stepnem@gmail.com>
>
> Thanks, but this seems to break t8005 for whatever reason.
The guilty line is
  git_config(git_default_config, NULL);
(t8005 passes if I remove it).

I don't understand why this breaks the test. It seems blame --encoding=UTF-8 relies on the fact that the i18n section of the configuration is not loaded.

An obvious fix on our side is to squash the patch below into the previous ones, to make sure the attributes code loads only the core configuration. OTOH, it seems to me that the blame code is very fragile, but I'm not familiar with this code to say whether and how it should be fixed.

Any other thoughts?
diff --git a/attr.c b/attr.c
index 342791a..793a835 100644
--- a/attr.c
+++ b/attr.c
@@ -500,7 +500,7 @@ static void bootstrap_attr_stack(void)
                        }
                }
 
-               git_config(git_default_config, NULL);
+               git_config(git_core_config, NULL);
                if (git_attr_global() && attributes_file) {
                        elem = read_attr_from_file(attributes_file, 1);
                        if (elem) {
diff --git a/cache.h b/cache.h
index 28d9497..2d0bfa0 100644
--- a/cache.h
+++ b/cache.h
@@ -972,6 +972,7 @@ extern int update_server_info(int);
 
 typedef int (*config_fn_t)(const char *, const char *, void *);
 extern int git_default_config(const char *, const char *, void *);
+extern int git_core_config(const char *, const char *, void *);
 extern int git_config_from_file(config_fn_t fn, const char *, void *);
 extern int git_config_parse_parameter(const char *text);
 extern int git_config_from_parameters(config_fn_t fn, void *data);
diff --git a/config.c b/config.c
index f602cd4..a2d1df9 100644
--- a/config.c
+++ b/config.c
@@ -602,6 +602,14 @@ static int git_default_core_config(const char *var, const char *value)
        return 0;
 }
 
+/* 
+ * Wrapper around git_default_core_config, with type acceptable as
+ * argument to git_config(...)
+ */
+int git_core_config(const char *var, const char *value, void *dummy) {
+       return git_default_core_config(var, value);
+}
+
 static int git_default_user_config(const char *var, const char *value)
 {
        if (!strcmp(var, "user.name")) {
-- 
Matthieu Moy
http://www-verimag.imag.fr/~moy/
Previous: Junio C HamanoNext: Junio C Hamano
Message 16 of 36 in “Add global and system-wide gitattributes”
  1. Add global and system-wide gitattributesPetr Onderka, Aug 11, 2010
  2. Henrik GrubbströmAug 11, 2010
  3. Petr OnderkaAug 11, 2010
  4. Matthieu MoyAug 11, 2010
  5. Junio C HamanoAug 11, 2010
  6. Petr OnderkaAug 16, 2010
  7. Add global and system-wide gitattributesPetr Onderka, Aug 16, 2010
  8. Štěpán NěmecAug 25, 2010
  9. Matthieu MoyAug 28, 2010
  10. Junio C HamanoAug 30, 2010
  11. Štěpán NěmecAug 30, 2010
  12. Matthieu MoyAug 28, 2010
  13. core.attributesfile: a fix, a simplification, and a testMatthieu Moy, Aug 28, 2010
  14. Štěpán NěmecAug 29, 2010
  15. Junio C HamanoAug 30, 2010
  16. Matthieu MoyAug 30, 2010
  17. Junio C HamanoAug 30, 2010
  18. Junio C HamanoAug 30, 2010
  19. Matthieu MoyAug 30, 2010
  20. 1/3 tests: factor HOME=$(pwd) in test-lib.shMatthieu Moy, Aug 30, 2010
  21. Ævar Arnfjörð BjarmasonAug 31, 2010
  22. Ævar Arnfjörð BjarmasonSep 1, 2010
  23. Junio C HamanoSep 1, 2010
  24. Ævar Arnfjörð BjarmasonSep 1, 2010
  25. Matthieu MoySep 1, 2010
  26. 2/3 don't write to git_log_output_encoding outside git_config()Matthieu Moy, Aug 30, 2010
  27. Matthieu MoySep 2, 2010
  28. Junio C HamanoSep 2, 2010
  29. 3/3 Add global and system-wide gitattributesMatthieu Moy, Aug 30, 2010
  30. Matthieu MoyAug 31, 2010
  31. Add global and system-wide gitattributesMatthieu Moy, Aug 31, 2010
  32. Junio C HamanoAug 31, 2010
  33. tests: factor HOME=$(pwd) in test-lib.shMatthieu Moy, Aug 30, 2010
  34. Ævar Arnfjörð BjarmasonAug 30, 2010
  35. Matthieu MoyAug 30, 2010
  36. Ævar Arnfjörð BjarmasonAug 30, 2010

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.