Junio C Hamano <gits...@pobox.com> writes:

> Antoine Pelisse <apeli...@gmail.com> writes:
>> I'm wondering if it would be needed to add a no-use-mailmap option to
>> log command so that it can cancel this configuration option.
> The usual way for adding a new feature is to add a --enable-feature
> long-option without any configuration variable to let users try it
> out in the field, and then add the configuration to let it be
> default for users who opt in.  The first step should also allow a
> command line option to disable (which should come for free if you
> use parse-options API correctly).

It should be sufficient to squash something like this in.  Use the
configured value, if available, to initialize the existing "mailmap"
variable, which is in turn updated from the command line option with
either --use-mailmap or --no-use-mailmap.  What is left in "mailmap"
after the command line parsing returns is what the user told us to


 builtin/log.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/builtin/log.c b/builtin/log.c
index f6936ff..16e6520 100644
--- a/builtin/log.c
+++ b/builtin/log.c
@@ -31,7 +31,7 @@ static int default_abbrev_commit;
 static int default_show_root = 1;
 static int decoration_style;
 static int decoration_given;
-static int use_mailmap;
+static int use_mailmap_config;
 static const char *fmt_patch_subject_prefix = "PATCH";
 static const char *fmt_pretty;
@@ -107,6 +107,7 @@ static void cmd_log_init_finish(int argc, const char 
**argv, const char *prefix,
+       mailmap = use_mailmap_config;
        argc = parse_options(argc, argv, prefix,
                             builtin_log_options, builtin_log_usage,
                             PARSE_OPT_KEEP_ARGV0 | PARSE_OPT_KEEP_UNKNOWN |
@@ -139,7 +140,7 @@ static void cmd_log_init_finish(int argc, const char 
**argv, const char *prefix,
        if (source)
                rev->show_source = 1;
-       if (mailmap || use_mailmap) {
+       if (mailmap) {
                rev->mailmap = xcalloc(1, sizeof(struct string_list));
                read_mailmap(rev->mailmap, NULL);
@@ -360,7 +361,7 @@ static int git_log_config(const char *var, const char 
*value, void *cb)
        if (!prefixcmp(var, "color.decorate."))
                return parse_decorate_color_config(var, 15, value);
        if (!strcmp(var, "log.mailmap")) {
-               use_mailmap = git_config_bool(var, value);
+               use_mailmap_config = git_config_bool(var, value);
                return 0;
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to