Messages in this thread Patch in this message | | | From | Joe Perches <> | Subject | [PATCH 2/7] scripts/get_maintainer.pl: Add sections in pattern match depth order | Date | Wed, 5 Aug 2009 19:43:43 -0700 |
| |
Before this change, matched sections were added in the order of appearance in the normally alphabetic section order of the MAINTAINERS file.
For instance, finding the maintainer for drivers/scsi/wd7000.c would first find "SCSI SUBSYSTEM", then "WD7000 SCSI SUBSYSTEM", then "THE REST".
before patch:
$ ./scripts/get_maintainer.pl --nogit -f drivers/scsi/wd7000.c James E.J. Bottomley <James.Bottomley@HansenPartnership.com> Miroslav Zagorac <zaga@fly.cc.fer.hr> linux-scsi@vger.kernel.org linux-kernel@vger.kernel.org
get_maintainer.pl now selects matched sections by longest pattern match. Longest is the number of "/"s and any specific file pattern.
This changes the example output order of MAINTAINERS to whatever is selected in "WD7000 SUBSYSTEM", then "SCSI SYSTEM", then "THE REST".
after patch:
$ ./scripts/get_maintainer.pl --nogit -f drivers/scsi/wd7000.c Miroslav Zagorac <zaga@fly.cc.fer.hr> James E.J. Bottomley <James.Bottomley@HansenPartnership.com> linux-scsi@vger.kernel.org linux-kernel@vger.kernel.org
Signed-off-by: Joe Perches <joe@perches.com> --- scripts/get_maintainer.pl | 9 ++++++++- 1 files changed, 8 insertions(+), 1 deletions(-)
diff --git a/scripts/get_maintainer.pl b/scripts/get_maintainer.pl index 35781e0..fb446e0 100755 --- a/scripts/get_maintainer.pl +++ b/scripts/get_maintainer.pl @@ -211,6 +211,7 @@ foreach my $file (@files) { if ($type eq 'X') { if (file_match_pattern($file, $value)) { $exclude = 1; + last; } } } @@ -218,18 +219,24 @@ foreach my $file (@files) { if (!$exclude) { my $tvi = 0; + my %hash; foreach my $line (@typevalue) { if ($line =~ m/^(\C):\s*(.*)/) { my $type = $1; my $value = $2; if ($type eq 'F') { if (file_match_pattern($file, $value)) { - add_categories($tvi); + my $pattern_depth = ($value =~ tr@/@@); + $pattern_depth++ if (!(substr($value,-1,1) eq "/")); + $hash{$tvi} = $pattern_depth; } } } $tvi++; } + foreach my $line (sort {$hash{$b} <=> $hash{$a}} keys %hash) { + add_categories($line); + } } if ($email && $email_git) { -- 1.6.3.1.10.g659a0.dirty
| |