summaryrefslogtreecommitdiff
path: root/scripts/get_maintainer.pl
AgeCommit message (Collapse)AuthorFilesLines
2009-12-15scripts/get_maintainer.pl: support multiple VCSs - add mercurialJoe Perches1-93/+168
Restructure a bit for multiple version control systems support. Use a hash for each supported VCS that contains the commands and patterns used to find commits, logs, and signers. --git command line options are still used for hg except for --git-since. Use --hg-since instead. The number of commits can differ for git and hg, so --rolestats might be different. Style changes: Use common push style push(@foo...), simplify a return Bumped version to 0.23. Signed-off-by: Joe Perches <joe@perches.com> Cc: Marti Raudsepp <marti@juffo.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-12-15scripts/get_maintainer.pl: fix --non with --git-blame and cleanupsJoe Perches1-94/+104
Fix email matching without name --n and --git-blame Using --non and --git-blame caused maintainer signature matching to fail. Fixed that by adding 3rd argument to sub format_email to control show/hide name portion of address Slurp -f file instead of reading line-by-line for K: pattern matching. Suggested by Wolfram Sang as more efficient Refactor git command execution Break into 2 functions, execute/analyze Share code between --git and --git-blame Don't warn multiple times when git isn't installed Improve stats reporting --git-min-percent and -- rolestats now count the total number of commits for either the period of --git-since or if using --git-blame the commits used by the current file and calculate commit % as # of commits signed / total commits * 100 Code style cleaning Use consistent sub foo { my (args...) = @_; Signed-off-by: Joe Perches <joe@perches.com> Cc: Ben Hutchings <ben@decadent.org.uk> Cc: Greg KH <greg@kroah.com> Cc: Pavel Machek <pavel@ucw.cz> Cc: Wolfram Sang <w.sang@pengutronix.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-12-15scripts/get_maintainer.pl: add --roles and --rolestatsJoe Perches1-18/+176
--roles shows the role of each email address, i.e. why it was selected. --rolestats selects --roles and adds git log/blame signers #'s and % Multiple roles are possible (supporter, maintainer, git-signer...) --roles or --rolestats is meant to help identify appropriate maintainers to notify and should not be used with "git send-email --cc-cmd" Example output: Existing: $ ./scripts/get_maintainer.pl -f arch/x86/kernel/acpi/boot.c Corentin Chary <corentincj@iksaif.net> Karol Kozimor <sziwan@users.sourceforge.net> Len Brown <len.brown@intel.com> Pavel Machek <pavel@ucw.cz> Rafael J. Wysocki <rjw@sisk.pl> Thomas Gleixner <tglx@linutronix.de> Ingo Molnar <mingo@redhat.com> H. Peter Anvin <hpa@zytor.com> x86@kernel.org Yinghai Lu <yhlu.kernel@gmail.com> Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> acpi4asus-user@lists.sourceforge.net linux-pm@lists.linux-foundation.org linux-kernel@vger.kernel.org With --roles $ ./scripts/get_maintainer.pl --roles -f arch/x86/kernel/acpi/boot.c Corentin Chary <corentincj@iksaif.net> (maintainer:ASUS ACPI EXTRAS...) Karol Kozimor <sziwan@users.sourceforge.net> (maintainer:ASUS ACPI EXTRAS...) Len Brown <len.brown@intel.com> (supporter:SUSPEND TO RAM,git-signer) Pavel Machek <pavel@ucw.cz> (supporter:SUSPEND TO RAM) Rafael J. Wysocki <rjw@sisk.pl> (supporter:SUSPEND TO RAM) Thomas Gleixner <tglx@linutronix.de> (maintainer:X86 ARCHITECTURE...) Ingo Molnar <mingo@redhat.com> (maintainer:X86 ARCHITECTURE...,git-signer) H. Peter Anvin <hpa@zytor.com> (maintainer:X86 ARCHITECTURE...) x86@kernel.org (maintainer:X86 ARCHITECTURE...) Yinghai Lu <yhlu.kernel@gmail.com> (git-signer) Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> (git-signer) acpi4asus-user@lists.sourceforge.net (open list:ASUS ACPI EXTRAS...) linux-pm@lists.linux-foundation.org (open list:SUSPEND TO RAM) linux-kernel@vger.kernel.org (open list) With --rolestats $ ./scripts/get_maintainer.pl --rolestats -f arch/x86/kernel/acpi/boot.c Corentin Chary <corentincj@iksaif.net> (maintainer:ASUS ACPI EXTRAS...) Karol Kozimor <sziwan@users.sourceforge.net> (maintainer:ASUS ACPI EXTRAS...) Len Brown <len.brown@intel.com> (supporter:SUSPEND TO RAM,git-signer:16/79=20%) Pavel Machek <pavel@ucw.cz> (supporter:SUSPEND TO RAM) Rafael J. Wysocki <rjw@sisk.pl> (supporter:SUSPEND TO RAM) Thomas Gleixner <tglx@linutronix.de> (maintainer:X86 ARCHITECTURE...) Ingo Molnar <mingo@redhat.com> (maintainer:X86 ARCHITECTURE...,git-signer:29/79=37%) H. Peter Anvin <hpa@zytor.com> (maintainer:X86 ARCHITECTURE...) x86@kernel.org (maintainer:X86 ARCHITECTURE...) Yinghai Lu <yhlu.kernel@gmail.com> (git-signer:12/79=15%) Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> (git-signer:6/79=8%) acpi4asus-user@lists.sourceforge.net (open list:ASUS ACPI EXTRAS...) linux-pm@lists.linux-foundation.org (open list:SUSPEND TO RAM) linux-kernel@vger.kernel.org (open list) With --rolestats and --git-blame $ ./scripts/get_maintainer.pl --rolestats --git-blame -f arch/x86/kernel/acpi/boot.c Corentin Chary <corentincj@iksaif.net> (maintainer:ASUS ACPI EXTRAS...) Karol Kozimor <sziwan@users.sourceforge.net> (maintainer:ASUS ACPI EXTRAS...) Len Brown <len.brown@intel.com> (supporter:SUSPEND TO RAM,git-signer:16/79=20%,commits:22/154=14%) Pavel Machek <pavel@ucw.cz> (supporter:SUSPEND TO RAM) Rafael J. Wysocki <rjw@sisk.pl> (supporter:SUSPEND TO RAM) Thomas Gleixner <tglx@linutronix.de> (maintainer:X86 ARCHITECTURE...) Ingo Molnar <mingo@redhat.com> (maintainer:X86 ARCHITECTURE...,git-signer:29/79=37%,commits:36/154=23%) H. Peter Anvin <hpa@zytor.com> (maintainer:X86 ARCHITECTURE...) x86@kernel.org (maintainer:X86 ARCHITECTURE...) Yinghai Lu <yhlu.kernel@gmail.com> (git-signer:12/79=15%,commits:9/154=6%) Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> (git-signer:6/79=8%) Andi Kleen <ak@suse.de> (commits:11/154=7%) Andrew Morton <akpm@osdl.org> (commits:10/154=6%) acpi4asus-user@lists.sourceforge.net (open list:ASUS ACPI EXTRAS...) linux-pm@lists.linux-foundation.org (open list:SUSPEND TO RAM) linux-kernel@vger.kernel.org (open list) Other changes: Format git-signers email addresses a bit to reduce bad signatures Command line bad arguments emitted a verbose usage(), just show --help Version number bumped to .22 Ben Hutchings had the idea and created a good deal of this implementation. Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Ben Hutchings <ben@decadent.org.uk> Cc: Greg KH <greg@kroah.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-11-12get_maintainer: fix usage commentRoel Kluin1-2/+2
With the `s' it just won't work. Signed-off-by: Roel Kluin <roel.kluin@gmail.com> Acked-by: Joe Perches <joe@perches.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-10-29scripts/get_maintainer.pl: add patch/file search for keywordsJoe Perches1-2/+35
Based on an idea from Wolfram Sang. Add search for MAINTAINERS line "K:" regex pattern match in a patch or file Matches are added after file pattern matches Add --keywords command line switch (default 1, on) Change version to 0.21 Signed-off-by: Joe Perches <joe@perches.com> Cc: Wolfram Sang <w.sang@pengutronix.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-09-22scripts/get_maintainer.pl: add maintainers in order listed in matched sectionJoe Perches1-16/+54
Previous behavior was "bottom-up" in each section from the pattern "F:" entry that matched. Now information is entered into the various lists in the "as entered" order for each matched section. This also allows the F: entry to be put anywhere in a section, not just as the last entries in the section. And a couple of improvements: Don't alphabetically sort before outputting the matched scm, status, subsystem and web sections. Ignore content after a single email address so these entries are acceptable M: name <address> whatever other comment And a fix: Make an M: entry without a name again use the name from an immediately preceding P: line if it exists. Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-09-22scripts/get_maintainer.pl: add --remove-duplicatesJoe Perches1-53/+55
Allow control over the elimination of duplicate email names and addresses --remove-duplicates will use the first email name or address presented --noremove-duplicates will emit all names and addresses --remove-duplicates is enabled by default For instance: $ ./scripts/get_maintainer.pl -f drivers/char/tty_ioctl.c Greg Kroah-Hartman <gregkh@suse.de> Alan Cox <alan@linux.intel.com> Mike Frysinger <vapier@gentoo.org> Alexey Dobriyan <adobriyan@gmail.com> linux-kernel@vger.kernel.org $ ./scripts/get_maintainer.pl -f --noremove-duplicates drivers/char/tty_ioctl.c Greg Kroah-Hartman <gregkh@suse.de> Alan Cox <alan@redhat.com> Alan Cox <alan@linux.intel.com> Alan Cox <alan@lxorguk.ukuu.org.uk> Mike Frysinger <vapier@gentoo.org> Alexey Dobriyan <adobriyan@gmail.com> linux-kernel@vger.kernel.org Using --remove-duplicates could eliminate multiple maintainers that share the same name but not the same email address. Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-09-22scripts/get_maintainer.pl: using --separator implies --nomultilineJoe Perches1-0/+5
If a person sets a separator, it's only used if --nomultiline is set. Don't make the command line also include --nomultiline in that case. Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-09-22scripts/get_maintainer.pl: add .mailmap use, shell and email cleanupsJoe Perches1-7/+65
Add reading and using .mailmap file if it exists Convert address entries in .mailmap to first encountered address Don't terminate shell commands with \n Strip characters found after sign-offs by: name <address> [stripped] Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-09-22scripts/get_maintainer.pl: better email routines, use perl not shell where ↵Joe Perches1-56/+96
possible Added format_email and parse_email routines to reduce inline use. Added email_address_inuse to eliminate multiple maintainer entries for the same email address, the first name encountered is used. Used internal perl equivalents of shell cmd use of grep|cut|sort|uniq Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-09-22scripts/get_maintainer.pl: add --pattern-depthJoe Perches1-7/+14
--pattern-depth is used to control how many levels of directory traversal should be performed to find maintainers. default is 0 (all directory levels). For instance: MAINTAINERS currently has multiple M: and F: entries that match net/netfilter/ipvs/ip_vs_app.c IPVS M: Wensong Zhang <wensong@linux-vs.org> M: Simon Horman <horms@verge.net.au> M: Julian Anastasov <ja@ssi.bg> [...] F: net/netfilter/ipvs/ NETFILTER/IPTABLES/IPCHAINS [...] M: Patrick McHardy <kaber@trash.net> [...] F: net/netfilter/ NETWORKING [GENERAL] M: "David S. Miller" <davem@davemloft.net> [...] F: net/ THE REST M: Linus Torvalds <torvalds@linux-foundation.org> [...] F: */ Using this command will return all of those maintainers: (except Linus unless --git-chief-maintainers is specified) $ ./scripts/get_maintainer.pl --nogit -nol \ -f net/netfilter/ipvs/ip_vs_app.c Julian Anastasov <ja@ssi.bg> Simon Horman <horms@verge.net.au> Wensong Zhang <wensong@linux-vs.org> Patrick McHardy <kaber@trash.net> David S. Miller <davem@davemloft.net> Adding --pattern-depth=1 will match at the deepest level $ ./scripts/get_maintainer.pl --nogit -nol --pattern-depth=1 \ -f net/netfilter/ipvs/ip_vs_app.c Julian Anastasov <ja@ssi.bg> Simon Horman <horms@verge.net.au> Wensong Zhang <wensong@linux-vs.org> Adding --pattern-depth=2 will match at the deepest level and 1 higher $ ./scripts/get_maintainer.pl --nogit -nol --pattern-depth=2 \ -f net/netfilter/ipvs/ip_vs_app.c Julian Anastasov <ja@ssi.bg> Simon Horman <horms@verge.net.au> Wensong Zhang <wensong@linux-vs.org> Patrick McHardy <kaber@trash.net> and so on. Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-09-22scripts/get_maintainer.pl: add sections in pattern match depth orderJoe Perches1-1/+8
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> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-09-22scripts/get_maintainer.pl: add --git-blameJoe Perches1-29/+109
Julia Lawall suggested that get_maintainers.pl should have the ability to include signatories of commits that are modified by a particular patch. Vegard Nossum did something similar once. http://lkml.org/lkml/2008/5/29/449 The modified script looks the commits for all lines in the patch, and includes the "-by:" signatories for those commits. It uses the same git-min-percent, git-max-maintainers, and git-min-signatures options. git-since is ignored. It can be used independently from the --git default, so ./scripts/get_maintainers.pl --nogit --git-blame <patch> or ./scripts/get_maintainers.pl --nogit --git-blame -f <file> is acceptable. If used with -f <file>, all lines/commits for the file are checked. --git-blame can be slow if used with -f <file> --git-blame does not work with -f <directory> Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-07-30get_maintainerpl-add-git-min-percent-option-fixJoe Perches1-1/+1
Allow an option to control the minimum percentage of sign-offs required before being considered a maintainer. git-min-percent has a default value of 5 Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-07-30get_maintainer.pl: Add git-min-percent optionJoe Perches1-3/+16
Allow an option to control the minimum percentage of sign-offs required before being considered a maintainer. git-min-percent has a default value of 5 Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-07-30scripts/get_maintainer.pl: Add -f directory useJoe Perches1-4/+19
Don't require a specific file in a directory to be tested. Also Arnd Bergmann pointed out that the MAINTAINERS pattern requirement that directory patterns have a trailing slash was unnecessary and was likely to be error prone. Removed that requirement. Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-06-17scripts/get_maintainer.pl: change "die" to "warn" when command line file is ↵Joe Perches1-1/+1
not a patch fixes git send-email with a cover letter Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-06-17scripts/get_maintainer.pl: allow 8 bit characters in email addressesJoe Perches1-1/+1
Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-06-17scripts/get_maintainer.pl: don't print maintainers when not requestedJoe Perches1-4/+6
Fixed bug introduced after using rfc822 address checking. Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-06-17scripts/get_maintainer.pl: support both "P:/M:" and integrated "M:" linesJoe Perches1-8/+22
Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-06-17scripts/get_maintainer.pl: better email name quotingJoe Perches1-0/+1
Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-06-17scripts/get_maintainer.pl: support M: lines with names and multiple entries ↵Joe Perches1-16/+129
per M: line Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-06-17scripts/get_maintainer.pl: warn on missing git or git repositoryJoe Perches1-3/+12
support older versions of grep (use -E not -P) no need to return data in routine recent_git_signoffs Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-06-17scripts/get_maintainer.pl: improve --git-chief-penquins (Linus Torvalds) ↵Joe Perches1-15/+12
filtering Moved linux-kernel@vger.kernel.org to MAINTAINERS lkml will be added to all CC lists via F: pattern match Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-06-17scripts/get_maintainer.pl: better fix for subscriber-only mailing listsJoe Perches1-1/+1
Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-06-17scripts/get_maintainer.pl: output first field only in mailing lists and ↵Joe Perches1-19/+27
after maintainers. Fix mailing lists that are described, but not "(subscriber-only)" Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-04-11scripts/get_maintainer.pl - Allow multiple files on command lineJoe Perches1-44/+41
Improve handling of "by:" signoffs Sorting and frequency checks are done by name/email, not by "by:" tag. Signed-off-by: Joe Perches <joe@perches.com>
2009-04-11Add scripts/get_maintainer.plJoe Perches1-0/+518
A script to parse file pattern information in MAINTAINERS and return selected information about a file or patch usage: scripts/get_maintainer.pl [options] patchfile scripts/get_maintainer.pl [options] -f file version: 0.14 MAINTAINERS field selection options: --email => print email address(es) if any --git => include git "*-by:" signers in commit count order --git-chief-penguins => include (Linus Torvalds) --git-min-signatures => number of signatures required (default: 1) --git-max-maintainers => maximum maintainers to add (default: 5) --git-since => git history to use (default: 1-year-ago) --m => include maintainer(s) if any --n => include name 'Full Name <addr@domain.tld>' --l => include list(s) if any --s => include subscriber only list(s) if any --scm => print SCM tree(s) if any --status => print status if any --subsystem => print subsystem name if any --web => print website(s) if any Output type options: --separator [, ] => separator for multiple entries on 1 line --multiline => print 1 entry per line Default options: [--email --git --m --n --l --multiline] Other options: --version => show version --help => show this help information Signed-off-by: Joe Perches <joe@perches.com> Acked-by: Pavel Machek <pavel@ucw.cz>