All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] get_maintainer: Gracefully handle files with authors but no signers
@ 2022-09-27 19:48 David Matlack
  0 siblings, 0 replies; only message in thread
From: David Matlack @ 2022-09-27 19:48 UTC (permalink / raw)
  To: Joe Perches; +Cc: linux-kernel, David Matlack

Gracefully handle the case where a file has no signers (e.g. has not
been modified within the last year) but does have authors (e.g. because
there are local commits that modifies the file without Signed-off-by
tags). This scenario could happen for developers whose workflow is to
add Signed-off-by tags as part of git-format-patch rather than as part
of git-commit.

Today this scenario results in the following non-sensical output from
get_maintainer.pl:

  Bad divisor in main::vcs_assign: 0
  "GitAuthor: David Matlack" <dmatlack@google.com> (authored:1/1=100%,added_lines:9/9=100%,removed_lines:3/3=100%)

There are two issues with this output: the "Bad divisor" error and the
garbled author name. Both stem from this line in vcs_find_signers():

  return (0, \@signatures, \@authors, \@stats) if !@signatures;

Returning 0 for the number of commits and a non-empty list for the
authors results in the "Bad divisor". The garbled author name comes from
the fact that @authors is the raw, unparsed, output line from git-log.
Code later in vcs_find_signers() actually parses out the name and drops
the "GitAuthor: " prefix.

Fix this by returning an empty list instead of @authors and @stats to
make them coherent with the fact that commits is 0.

Signed-off-by: David Matlack <dmatlack@google.com>
---
v2:
 - Return empty arrays by reference instead of by value [Joe]

v1: https://lore.kernel.org/lkml/20220922230114.3556322-1-dmatlack@google.com/

 scripts/get_maintainer.pl | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/get_maintainer.pl b/scripts/get_maintainer.pl
index ab123b498fd9..5e888432475e 100755
--- a/scripts/get_maintainer.pl
+++ b/scripts/get_maintainer.pl
@@ -1605,7 +1605,7 @@ sub vcs_find_signers {
 
 #    print("stats: <@stats>\n");
 
-    return (0, \@signatures, \@authors, \@stats) if !@signatures;
+    return (0, \(), \(), \()) if !@signatures;
 
     save_commits_by_author(@lines) if ($interactive);
     save_commits_by_signer(@lines) if ($interactive);

base-commit: 46452d3786a82bd732ba73fb308ae5cbe4e1e591
-- 
2.37.3.998.g577e59143f-goog


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

only message in thread, other threads:[~2022-09-27 19:48 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-27 19:48 [PATCH v2] get_maintainer: Gracefully handle files with authors but no signers David Matlack

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.