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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Vegard Nossum schreef:
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.)


Vegard

Based on Linus' script to get the email address of a maintainer, I wrote this bash script to get an indication of relevant lists. Maybe you can make use of the part that parses the
MAINTAINERS file for relevant lists?

---

git log --since="1 year ago"  "$@" | sed -n "s/^    .[-a-z]*by: \(.*\) <.*$/\1/p" |
sort | uniq | sort -n -r | while read -r name; do
       sed -n "/^P:[ \t]*.*$name/,/^$/{
               s/^L:[ \t]*\(.*\)$/\1/p
       }" ./MAINTAINERS
done | sort | uniq -c | sort -n -r | while read -r nr list; do
       tot=`grep -c "^L:\W*.*$list.*" ./MAINTAINERS`
       echo "`expr $nr / \( $tot + 1 \)` $nr $tot $list"
done | sort -r | cut -d " " -f2- | while read -r nr tot list; do
       echo -e "$nr/$tot Acks were commited by maintainers of list $list"
done


--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux