Browse Source

Merge branch 'ac/log-use-mailmap-by-default-transition'

The "git log" command learns to issue a warning when log.mailmap
configuration is not set and --[no-]mailmap option is not used, to
prepare users for future versions of Git that uses the mailmap by
default.

* ac/log-use-mailmap-by-default-transition:
  tests: defang pager tests by explicitly disabling the log.mailmap warning
  documentation: mention --no-use-mailmap and log.mailmap false setting
  log: add warning for unspecified log.mailmap setting
maint
Junio C Hamano 6 years ago
parent
commit
c7cf2de8fc
  1. 3
      Documentation/config/log.txt
  2. 2
      Documentation/git-log.txt
  3. 26
      builtin/log.c
  4. 2
      t/t7006-pager.sh

3
Documentation/config/log.txt

@ -40,4 +40,5 @@ log.showSignature:: @@ -40,4 +40,5 @@ log.showSignature::

log.mailmap::
If true, makes linkgit:git-log[1], linkgit:git-show[1], and
linkgit:git-whatchanged[1] assume `--use-mailmap`.
linkgit:git-whatchanged[1] assume `--use-mailmap`, otherwise
assume `--no-use-mailmap`. False by default.

2
Documentation/git-log.txt

@ -49,7 +49,7 @@ OPTIONS @@ -49,7 +49,7 @@ OPTIONS
Print out the ref name given on the command line by which each
commit was reached.

--use-mailmap::
--[no-]use-mailmap::
Use mailmap file to map author and committer names and email
addresses to canonical real names and email addresses. See
linkgit:git-shortlog[1].

26
builtin/log.c

@ -47,7 +47,7 @@ static int default_follow; @@ -47,7 +47,7 @@ static int default_follow;
static int default_show_signature;
static int decoration_style;
static int decoration_given;
static int use_mailmap_config;
static int use_mailmap_config = -1;
static const char *fmt_patch_subject_prefix = "PATCH";
static const char *fmt_pretty;

@ -63,9 +63,14 @@ struct line_opt_callback_data { @@ -63,9 +63,14 @@ struct line_opt_callback_data {
struct string_list args;
};

static int session_is_interactive(void)
{
return isatty(1) || pager_in_use();
}

static int auto_decoration_style(void)
{
return (isatty(1) || pager_in_use()) ? DECORATE_SHORT_REFS : 0;
return session_is_interactive() ? DECORATE_SHORT_REFS : 0;
}

static int parse_decoration_style(const char *value)
@ -151,6 +156,16 @@ static void cmd_log_init_defaults(struct rev_info *rev) @@ -151,6 +156,16 @@ static void cmd_log_init_defaults(struct rev_info *rev)
parse_date_format(default_date_mode, &rev->date_mode);
}

static char warn_unspecified_mailmap_msg[] =
N_("log.mailmap is not set; its implicit value will change in an\n"
"upcoming release. To squelch this message and preserve current\n"
"behaviour, set the log.mailmap configuration value to false.\n"
"\n"
"To squelch this message and adopt the new behaviour now, set the\n"
"log.mailmap configuration value to true.\n"
"\n"
"See 'git help config' and search for 'log.mailmap' for further information.");

static void cmd_log_init_finish(int argc, const char **argv, const char *prefix,
struct rev_info *rev, struct setup_revision_opt *opt)
{
@ -199,6 +214,13 @@ static void cmd_log_init_finish(int argc, const char **argv, const char *prefix, @@ -199,6 +214,13 @@ static void cmd_log_init_finish(int argc, const char **argv, const char *prefix,
memset(&w, 0, sizeof(w));
userformat_find_requirements(NULL, &w);

if (mailmap < 0) {
if (session_is_interactive() && !rev->pretty_given)
warning("%s\n", _(warn_unspecified_mailmap_msg));

mailmap = 0;
}

if (!rev->show_notes_given && (!rev->pretty_given || w.notes))
rev->show_notes = 1;
if (rev->show_notes)

2
t/t7006-pager.sh

@ -7,6 +7,8 @@ test_description='Test automatic use of a pager.' @@ -7,6 +7,8 @@ test_description='Test automatic use of a pager.'
. "$TEST_DIRECTORY"/lib-terminal.sh

test_expect_success 'setup' '
: squelch advice messages during the transition &&
git config --global log.mailmap false &&
sane_unset GIT_PAGER GIT_PAGER_IN_USE &&
test_unconfig core.pager &&


Loading…
Cancel
Save