Skip to content

Commit

Permalink
Merge branch 'ap/commit-author-mailmap' into maint
Browse files Browse the repository at this point in the history
* ap/commit-author-mailmap:
  commit: search author pattern against mailmap
  • Loading branch information
Junio C Hamano committed Oct 17, 2013
2 parents f8a3fd2 + ea16794 commit 87b24a4
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 1 deletion.
8 changes: 7 additions & 1 deletion builtin/commit.c
Original file line number Diff line number Diff line change
Expand Up @@ -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>..."),
Expand Down Expand Up @@ -935,6 +936,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;

Expand All @@ -945,13 +947,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);
Expand Down
11 changes: 11 additions & 0 deletions t/t4203-mailmap.sh
Original file line number Diff line number Diff line change
Expand Up @@ -484,4 +484,15 @@ test_expect_success 'Blame output (complex mapping)' '
test_cmp expect actual.fuzz
'

cat >expect <<\EOF
Some Dude <some@dude.xx>
EOF

test_expect_success 'commit --author honors mailmap' '
test_must_fail git commit --author "nick" --allow-empty -meight &&
git commit --author "Some Dude" --allow-empty -meight &&
git show --pretty=format:"%an <%ae>%n" >actual &&
test_cmp expect actual
'

test_done

0 comments on commit 87b24a4

Please sign in to comment.