All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH] scripts/get_maintainer.pl: Use vcs history of pattern match
@ 2010-09-26  4:10 Joe Perches
  0 siblings, 0 replies; only message in thread
From: Joe Perches @ 2010-09-26  4:10 UTC (permalink / raw)
  To: LKML; +Cc: Florian Mickler, Ted Ts'o, Andrew Morton

When users make changes to individual files in a directory,
git history of just that file is searched.  This can lead
to poor generated results as the directory could actually
be the preferred history unit to find maintainers.

When a file has an exact pattern match, which may be a
directory, search the pattern matched rather than the file.

This may not work well for file in an active directory
like kernel/, because it does not have a named maintainer.

Signed-off-by: Joe Perches <joe@perches.com>
---
 scripts/get_maintainer.pl |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/scripts/get_maintainer.pl b/scripts/get_maintainer.pl
index d21ec3a..9a3627a 100755
--- a/scripts/get_maintainer.pl
+++ b/scripts/get_maintainer.pl
@@ -508,6 +508,7 @@ sub get_maintainers {
     @status = ();
     %deduplicate_name_hash = ();
     %deduplicate_address_hash = ();
+
     if ($email_git_all_signature_types) {
 	$signature_pattern = "(.+?)[Bb][Yy]:";
     } else {
@@ -515,8 +516,8 @@ sub get_maintainers {
     }
 
     # Find responsible parties
-
     my %exact_pattern_match_hash = ();
+    my %matched_pattern_hash = ();
 
     foreach my $file (@files) {
 
@@ -558,6 +559,7 @@ sub get_maintainers {
 				$value_pd = -1 if ($value =~ /^\.\*/);
 				if ($value_pd >= $file_pd) {
 				    $exact_pattern_match_hash{$file} = 1;
+				    $matched_pattern_hash{$value}++;
 				}
 				if ($pattern_depth == 0 ||
 				    (($file_pd - $value_pd) < $pattern_depth)) {
@@ -608,7 +610,13 @@ sub get_maintainers {
 	if ($email &&
 	    ($email_git || ($email_git_fallback &&
 			    !$exact_pattern_match_hash{$file}))) {
-	    vcs_file_signoffs($file);
+	    my $vcs_pattern;
+	    if (scalar keys %matched_pattern_hash) {
+		$vcs_pattern = join(" ", keys %matched_pattern_hash);
+	    } else {
+		$vcs_pattern = $file;
+	    }
+	    vcs_file_signoffs($vcs_pattern);
 	}
 	if ($email && $email_git_blame) {
 	    vcs_file_blame($file);



^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2010-09-26  4:10 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-09-26  4:10 [RFC PATCH] scripts/get_maintainer.pl: Use vcs history of pattern match Joe Perches

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.