diff options
author | Junio C Hamano <gitster@pobox.com> | 2013-09-17 11:38:33 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2013-09-17 11:38:33 -0700 |
commit | 5aebc9a8deb1c8c83537bae72f14585e44f51787 (patch) | |
tree | 14ec3c578337afe2f8ac7d58285e532eb41821df /builtin/commit.c | |
parent | b8f23112f0415cc86eb0ec576ac7e16c7c9d78b8 (diff) | |
parent | ea16794e4303e79f8acb01a93fb6b1762972ab86 (diff) | |
download | git-5aebc9a8deb1c8c83537bae72f14585e44f51787.tar.gz |
Merge branch 'ap/commit-author-mailmap'
"git commit --author=$name", when $name is not in the canonical
"A. U. Thor <au.thor@example.xz>" format, looks for a matching name
from existing history, but did not consult mailmap to grab the
preferred author name.
* ap/commit-author-mailmap:
commit: search author pattern against mailmap
Diffstat (limited to 'builtin/commit.c')
-rw-r--r-- | builtin/commit.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/builtin/commit.c b/builtin/commit.c index 80d886ab3a..084d70fd4d 100644 --- a/builtin/commit.c +++ b/builtin/commit.c @@ -30,6 +30,7 @@ #include "column.h" #include "sequencer.h" #include "notes-utils.h" +#include "mailmap.h" static const char * const builtin_commit_usage[] = { N_("git commit [options] [--] <pathspec>..."), @@ -933,6 +934,7 @@ static const char *find_author_by_nickname(const char *name) struct rev_info revs; struct commit *commit; struct strbuf buf = STRBUF_INIT; + struct string_list mailmap = STRING_LIST_INIT_NODUP; const char *av[20]; int ac = 0; @@ -943,13 +945,17 @@ static const char *find_author_by_nickname(const char *name) av[++ac] = buf.buf; av[++ac] = NULL; setup_revisions(ac, av, &revs, NULL); + revs.mailmap = &mailmap; + read_mailmap(revs.mailmap, NULL); + prepare_revision_walk(&revs); commit = get_revision(&revs); if (commit) { struct pretty_print_context ctx = {0}; ctx.date_mode = DATE_NORMAL; strbuf_release(&buf); - format_commit_message(commit, "%an <%ae>", &buf, &ctx); + format_commit_message(commit, "%aN <%aE>", &buf, &ctx); + clear_mailmap(&mailmap); return strbuf_detach(&buf, NULL); } die(_("No existing author found with '%s'"), name); |