Re: whomto.pl -- finding out whom to send patches to

From: Andrea Righi
Date: Fri May 30 2008 - 04:11:20 EST


Vegard Nossum wrote:
Hi,

I've written this perl script that takes a patch as input and prints the
authors/committers of the affected lines, using git-blame as the back end.

(The purpose of this is of course to find out whom to send patches to.)

There are some caveats:

- If I've understood correctly, git-blame incremental output doesn't split
commits when a newer one is found, so we currently possibly take into
account more than just the last patch to touch a line. This might not be
a disadvantage, however...

- The patch must apply to the current working tree. I suppose there is
some way to use the index information in the patch to determine what to
run git-blame against, but this is currently beyond my git knowledge.

- It's a bit slow, particularly for large files. But doing the same thing
by hand would be slower, so I suppose it's an overall improvement.

Running this on a random -mm patch, for example
http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.26-rc2/2.6.26-rc2-mm1/broken-out/acpi-fix-fadt-parsing.patch
gives the following output:

$ perl whomto2.pl acpi-fix-fadt-parsing.patch
Running git-blame on drivers/acpi/tables/tbfadt.c...

To: (Committers)
48 Len Brown <len.brown@xxxxxxxxx>
Cc: (Authors)
44 Bob Moore <robert.moore@xxxxxxxxx>
2 Alexey Starikovskiy <alexey.y.starikovskiy@xxxxxxxxxxxxxxx>
2 Len Brown <len.brown@xxxxxxxxx>

Maybe this tool can be useful? :-)

(Improvements are of course also welcome.)

Minor fix: do not git-blame /dev/null in patches that add new files.

-Andrea

diff -urpN linux/whomto.orig.pl linux/whomto.pl
--- linux/whomto.orig.pl 2008-05-30 09:43:08.000000000 +0200
+++ linux/whomto.pl 2008-05-30 09:49:26.000000000 +0200
@@ -101,6 +101,7 @@ sub parse_patch {

for (@p) {
if (m/^--- .*?\/([^\s~]*)/) {
+ next if ($1 eq 'dev/null');
$file = $files{$1} = {
chunks => [],
};
--
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/