[PATCH] Support for passing path to custom map in git-shortlog.perl
From: Petr Baudis <hidden>
Date: 2016-06-15 22:42:10
Subsystem:
documentation, the rest · Maintainers:
Jonathan Corbet, Linus Torvalds
Aside of looking into .mailmap, add support for -m MAPFILE. Signed-off-by: Petr Baudis <redacted> --- Documentation/git-shortlog.txt | 10 +++++++++- git-shortlog.perl | 10 ++++++++++ 2 files changed, 19 insertions(+), 1 deletions(-)
diff --git a/Documentation/git-shortlog.txt b/Documentation/git-shortlog.txt
index 65ca77f..c8de78e 100644
--- a/Documentation/git-shortlog.txt
+++ b/Documentation/git-shortlog.txt@@ -8,13 +8,21 @@ git-shortlog - Summarize 'git log' outpu SYNOPSIS -------- -'git-log --pretty=short | git shortlog' +'git-log --pretty=short | git shortlog [-m MAILMAP_FILE]' DESCRIPTION ----------- Summarizes 'git log' output in a format suitable for inclusion in release announcements. +OPTIONS +------- +-m MAILMAP_FILE:: + File containing the email-to-realname mappings to be used + in case of the realname missing in the "Author" field of + the commit. In addition, the '.mailmap' file and few predefined + mappings are also always searched. + Author ------
diff --git a/git-shortlog.perl b/git-shortlog.perl
index 7283159..cd83dbe 100755
--- a/git-shortlog.perl
+++ b/git-shortlog.perl@@ -1,6 +1,7 @@ #!/usr/bin/perl -w use strict; +use Getopt::Std; my (%mailmap); my (%email);
@@ -9,6 +10,9 @@ my $pstate = 1; my $n_records = 0; my $n_output = 0; +my (%opts); +getopts('m:', \%opts); + sub shortlog_entry($$) { my ($name, $desc) = @_; my $key = $name;
@@ -132,6 +136,12 @@ sub setup_mailmap { read_mailmap($fh, \%mailmap); close $fh; } + if ($opts{'m'}) { + my $fh = undef; + open($fh, '<', $opts{'m'}) or die "Cannot open mailmap $opts{m}: $!"; + read_mailmap($fh, \%mailmap); + close($fh); + } } sub finalize {