Re: [PATCH] init_task: Include <linux/rbtree.h> in the right file
From: Joe Perches
Date: Sun Dec 04 2022 - 12:16:16 EST
On Sun, 2022-12-04 at 14:55 +0100, Marco Elver wrote:
> [+Cc Ingo, who had been working on lots of include improvements.]
>
> The Cc list is odd -- it appears that get_maintainers.pl is broken on
> init_task.c:
>
> $> ./scripts/get_maintainer.pl init/init_task.c
> Mark Rutland <mark.rutland@xxxxxxx> (commit_signer:1/1=100%)
> "Paul E. McKenney" <paulmck@xxxxxxxxxx> (commit_signer:1/1=100%)
> Marco Elver <elver@xxxxxxxxxx> (commit_signer:1/1=100%,authored:1/1=100%,removed_lines:5/5=100%)
> linux-kernel@xxxxxxxxxxxxxxx (open list)
>
> What's going on here?
No one claims to be a maintainer of any init/ files
($ git grep "^F:.*init" MAINTAINERS)
so by default it merely shows the people that have patched the
particular file in the last year.
You could perhaps see this better by adding --no-git --no-gitfallback
to the get_maintainer.pl command line
$ ./scripts/get_maintainer.pl --nogit --nogit-fallback init/init_task.c
linux-kernel@xxxxxxxxxxxxxxx (open list)
see the --help option for details
$ ./scripts/get_maintainer.pl --help
usage: ./scripts/get_maintainer.pl [options] patchfile
./scripts/get_maintainer.pl [options] -f file|directory
version: 0.26
MAINTAINER field selection options:
--email => print email address(es) if any
--git => include recent git *-by: signers
--git-all-signature-types => include signers regardless of signature type
or use only (Signed-off-by:|Reviewed-by:|Acked-by:) signers (default: 0)
--git-fallback => use git when no exact MAINTAINERS pattern (default: 1)
--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-min-percent => minimum percentage of commits required (default: 5)
--git-blame => use git blame to find modified commits for patch or file
--git-blame-signatures => when used with --git-blame, also include all commit signers
--git-since => git history to use (default: 1-year-ago)
--hg-since => hg history to use (default: -365)
--interactive => display a menu (mostly useful if used with the --git option)
--m => include maintainer(s) if any
--r => include reviewer(s) if any
--n => include name 'Full Name <addr@xxxxxxxxxx>'
--l => include list(s) if any
--moderated => include moderated lists(s) if any (default: true)
--s => include subscriber only list(s) if any (default: false)
--remove-duplicates => minimize duplicate email names/addresses
--roles => show roles (status:subsystem, git-signer, list, etc...)
--rolestats => show roles and statistics (commits/total_commits, %)
--file-emails => add email addresses found in -f file (default: 0 (off))
--fixes => for patches, add signatures of commits with 'Fixes: <commit>' (default: 1 (on))
--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
using --separator also sets --nomultiline if --separator is not [, ]
--multiline => print 1 entry per line
Other options:
--pattern-depth => Number of pattern directory traversals (default: 0 (all))
--keywords => scan patch for keywords (default: 1)
--sections => print all of the subsystem sections with pattern matches
--letters => print all matching 'letter' types from all matching sections
--mailmap => use .mailmap file (default: 1)
--no-tree => run without a kernel tree
--self-test => show potential issues with MAINTAINERS file content
--version => show version
--help => show this help information
Default options:
[--email --tree --nogit --git-fallback --m --r --n --l --multiline
--pattern-depth=0 --remove-duplicates --rolestats]
Notes:
Using "-f directory" may give unexpected results:
Used with "--git", git signators for _all_ files in and below
directory are examined as git recurses directories.
Any specified X: (exclude) pattern matches are _not_ ignored.
Used with "--nogit", directory is used as a pattern match,
no individual file within the directory or subdirectory
is matched.
Used with "--git-blame", does not iterate all files in directory
Using "--git-blame" is slow and may add old committers and authors
that are no longer active maintainers to the output.
Using "--roles" or "--rolestats" with git send-email --cc-cmd or any
other automated tools that expect only ["name"] <email address>
may not work because of additional output after <email address>.
Using "--rolestats" and "--git-blame" shows the #/total=% commits,
not the percentage of the entire file authored. # of commits is
not a good measure of amount of code authored. 1 major commit may
contain a thousand lines, 5 trivial commits may modify a single line.
If git is not installed, but mercurial (hg) is installed and an .hg
repository exists, the following options apply to mercurial:
--git,
--git-min-signatures, --git-max-maintainers, --git-min-percent, and
--git-blame
Use --hg-since not --git-since to control date selection
File ".get_maintainer.conf", if it exists in the linux kernel source root
directory, can change whatever get_maintainer defaults are desired.
Entries in this file can be any command line argument.
This file is prepended to any additional command line arguments.
Multiple lines and # comments are allowed.
Most options have both positive and negative forms.
The negative forms for --<foo> are --no<foo> and --no-<foo>.