[PATCH] Support for passing path to custom map in git-shortlog.perl
Aside of looking into .mailmap, add support for -m MAPFILE.
Signed-off-by: Petr Baudis <pasky@suse.cz>
---
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 {