aboutsummaryrefslogtreecommitdiff
path: root/builtin/commit.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2013-09-17 11:38:33 -0700
committerJunio C Hamano <gitster@pobox.com>2013-09-17 11:38:33 -0700
commit5aebc9a8deb1c8c83537bae72f14585e44f51787 (patch)
tree14ec3c578337afe2f8ac7d58285e532eb41821df /builtin/commit.c
parentb8f23112f0415cc86eb0ec576ac7e16c7c9d78b8 (diff)
parentea16794e4303e79f8acb01a93fb6b1762972ab86 (diff)
downloadgit-5aebc9a8deb1c8c83537bae72f14585e44f51787.tar.gz
git-5aebc9a8deb1c8c83537bae72f14585e44f51787.tar.xz
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.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/builtin/commit.c b/builtin/commit.c
index 80d886ab3..084d70fd4 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);