[<prev] [next>] [day] [month] [year] [list]
Message-ID: <1289046490.29216.23.camel@Joe-Laptop>
Date: Sat, 06 Nov 2010 05:28:10 -0700
From: Joe Perches <joe@...ches.com>
To: Andrew Morton <akpm@...ux-foundation.org>
Cc: LKML <linux-kernel@...r.kernel.org>
Subject: [PATCH] scripts/get_maintainer.pl: Use --git-fallback more often
On Fri, 2010-11-05 at 13:50 -0700, Andrew Morton wrote:
> z:/usr/src/git26> perl scripts/get_maintainer.pl -file mm/mempolicy.c
> linux-mm@...ck.org
> linux-kernel@...r.kernel.org
Turns out this is an arguable defect in the script.
The MAINTAINERS entry for mm is:
MEMORY MANAGEMENT
L: linux-mm@...ck.org
W: http://www.linux-mm.org
S: Maintained
F: include/linux/mm.h
F: mm/
There's a maintainer entry, but no named individual, so
the script doesn't use git history via --git-fallback.
This is also a defect for MAINTAINERS with status
entries marked "Orphan" or "Odd fixes".
The script now checks a section for any "M:" entry and
that an "S:" entry is supported or maintained. If both
those conditions are not satisified, use --git-fallback
as appropriate.
Signed-off-by: Joe Perches <joe@...ches.com>
---
scripts/get_maintainer.pl | 38 +++++++++++++++++++++++++++++++++++++-
1 files changed, 37 insertions(+), 1 deletions(-)
diff --git a/scripts/get_maintainer.pl b/scripts/get_maintainer.pl
index 43bace2..139e0ff 100755
--- a/scripts/get_maintainer.pl
+++ b/scripts/get_maintainer.pl
@@ -494,6 +494,40 @@ if ($web) {
exit($exit);
+sub range_is_maintained {
+ my ($start, $end) = @_;
+
+ for (my $i = $start; $i < $end; $i++) {
+ my $line = $typevalue[$i];
+ if ($line =~ m/^(\C):\s*(.*)/) {
+ my $type = $1;
+ my $value = $2;
+ if ($type eq 'S') {
+ if ($value =~ /(maintain|support)/i) {
+ return 1;
+ }
+ }
+ }
+ }
+ return 0;
+}
+
+sub range_has_maintainer {
+ my ($start, $end) = @_;
+
+ for (my $i = $start; $i < $end; $i++) {
+ my $line = $typevalue[$i];
+ if ($line =~ m/^(\C):\s*(.*)/) {
+ my $type = $1;
+ my $value = $2;
+ if ($type eq 'M') {
+ return 1;
+ }
+ }
+ }
+ return 0;
+}
+
sub get_maintainers {
%email_hash_name = ();
%email_hash_address = ();
@@ -556,7 +590,9 @@ sub get_maintainers {
my $file_pd = ($file =~ tr@/@@);
$value_pd++ if (substr($value,-1,1) ne "/");
$value_pd = -1 if ($value =~ /^\.\*/);
- if ($value_pd >= $file_pd) {
+ if ($value_pd >= $file_pd &&
+ range_is_maintained($start, $end) &&
+ range_has_maintainer($start, $end)) {
$exact_pattern_match_hash{$file} = 1;
}
if ($pattern_depth == 0 ||
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists