22 Sep, 2009

8 commits

  • 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

    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
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • 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
    Alan Cox
    Mike Frysinger
    Alexey Dobriyan
    linux-kernel@vger.kernel.org

    $ ./scripts/get_maintainer.pl -f --noremove-duplicates drivers/char/tty_ioctl.c
    Greg Kroah-Hartman
    Alan Cox
    Alan Cox
    Alan Cox
    Mike Frysinger
    Alexey Dobriyan
    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
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • 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
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • 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

    [stripped]

    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • 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
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • --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
    M: Simon Horman
    M: Julian Anastasov
    [...]
    F: net/netfilter/ipvs/

    NETFILTER/IPTABLES/IPCHAINS
    [...]
    M: Patrick McHardy
    [...]
    F: net/netfilter/

    NETWORKING [GENERAL]
    M: "David S. Miller"
    [...]
    F: net/

    THE REST
    M: Linus Torvalds
    [...]
    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
    Simon Horman
    Wensong Zhang
    Patrick McHardy
    David S. Miller

    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
    Simon Horman
    Wensong Zhang

    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
    Simon Horman
    Wensong Zhang
    Patrick McHardy

    and so on.

    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • 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
    Miroslav Zagorac
    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
    James E.J. Bottomley
    linux-scsi@vger.kernel.org
    linux-kernel@vger.kernel.org

    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • 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
    or
    ./scripts/get_maintainers.pl --nogit --git-blame -f
    is acceptable.

    If used with -f , all lines/commits for the file are
    checked.

    --git-blame can be slow if used with -f
    --git-blame does not work with -f

    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     

30 Jul, 2009

3 commits

  • 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
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • 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
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • 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
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     

17 Jun, 2009

10 commits


11 Apr, 2009

2 commits

  • 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
     
  • 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 '
    --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
    Acked-by: Pavel Machek

    Joe Perches