[PATCH] get_maintainer.pl: Add support to match arbitrary text

From: L. Alberto GimÃnez
Date: Mon Jan 24 2011 - 18:32:50 EST


Extend the usage of the K section in the MAINTAINERS file to support matching
regular expressions with the content that precedes the patch (delimited by three
dashes "---").

The change enables the get_maintainer.pl script to get maintainers based on
arbitrary text that may precede the patch itself (for example, the commit
message or mail headers generated by git-format-patch)

Thanks to Jesper Juhl to point me that trivial patches should be CC'd to Jiri.
The idea is that the get_maintainer.pl can detect such situations and add the
additional email addresses and let the MAINTAINERS file handle who should get
copies of what.

Signed-off-by: L. Alberto GimÃnez <agimenez@xxxxxxxxxxx>
---
MAINTAINERS | 1 +
scripts/get_maintainer.pl | 12 +++++++++++-
2 files changed, 12 insertions(+), 1 deletions(-)

diff --git a/MAINTAINERS b/MAINTAINERS
index cf0f3a5..c1e33ac 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -6145,6 +6145,7 @@ TRIVIAL PATCHES
M: Jiri Kosina <trivial@xxxxxxxxxx>
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial.git
S: Maintained
+K: ^Subject:.*\[(?i)trivial\].*

TTY LAYER
M: Greg Kroah-Hartman <gregkh@xxxxxxx>
diff --git a/scripts/get_maintainer.pl b/scripts/get_maintainer.pl
index 139e0ff..63d4d90 100755
--- a/scripts/get_maintainer.pl
+++ b/scripts/get_maintainer.pl
@@ -420,6 +420,11 @@ foreach my $file (@ARGV) {

open(my $patch, "< $file")
or die "$P: Can't open $file: $!\n";
+
+ # We can add arbitrary information before the patch itself (commit message,
+ # mail headers,... This allows us to match arbitrary keywords agains any
+ # part of a git-format-patch generated file (subject tags, etc...)
+ my $in_patch = 0;
while (<$patch>) {
my $patch_line = $_;
if (m/^\+\+\+\s+(\S+)/) {
@@ -432,9 +437,14 @@ foreach my $file (@ARGV) {
if ($email_git_blame) {
push(@range, "$lastfile:$1:$2");
}
+ } elsif (not $in_patch and m/^---/) {
+ # enter "patch area": keywords matched only on changed lines
+ $in_patch = 1;
} elsif ($keywords) {
foreach my $line (keys %keyword_hash) {
- if ($patch_line =~ m/^[+-].*$keyword_hash{$line}/x) {
+ my $change_hook = $in_patch ? "^[+-].*" : "";
+
+ if ($patch_line =~ m/^${change_hook}$keyword_hash{$line}/x) {
push(@keyword_tvi, $line);
}
}
--
1.7.4.rc0.5.gf2665

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/