On Fri, Sep 25, 2026 at 08:00:47PM +0800, Matthias Goergens wrote:
> A git T: entry can name a branch after the repository URL. The first
> to do so, commit a1aa5a770dc3 ("MAINTAINERS: update hwmon subsystem
> git trees"), added two T: lines for one repository, one per branch.
> Today 109 of the 846 git T: lines name a branch, and ten entries list
> one repository more than once with different branches. Commit
> 083bf9c56d06 ("get_maintainer: add more --self-test options") taught
> get_maintainer.pl to check the branch with git ls-remote. Neither the
> MAINTAINERS preamble nor submitting-patches.rst mentions any of this.
>
> Document the syntax only. What a named branch is for varies: many
> entries name the branch linux-next merges, others a fixes or topic
> branch, and some subsystems want patches based on a mainline tag rather
> than on any branch of their tree. maintainer-entry-profile.rst already
> asks a profile to say which branches go into linux-next and which one
> contributors should submit against, so point there.
>
> In submitting-patches.rst, say that fixes for the current release cycle
> and new development usually start from different places, and where to
> find out which.
>
> Suggested-by: Theodore Ts'o <[email protected]>
> Link: https://lore.kernel.org/all/[email protected]/
> Signed-off-by: Matthias Goergens <[email protected]>
> ---
> v2:
> - Krzysztof: one patch instead of two. The header no longer says when
> to name a branch (v1 tied that to the repository's HEAD); it
> documents the syntax only. submitting-patches.rst names the branch
> that queues work for linux-next as the usual base for new
> development. The cgit about page he mentions is a good place to
> describe branches, but not every tree has one, so the text does not
> point there.
> - Marc: some trees are integration-only and want patches on a mainline
> tag, so what to base patches on is left to the P: profile or the
> maintainer:
> https://lore.kernel.org/all/[email protected]/
> - Niklas: fixes for the current release cycle are now told apart from
> new development. memblock is not alone: ten entries list one
> repository with several branches, so the header says an entry may do
> that, without recommending it over a single line.
> - Eric: his fsverity patch uses one T: line per branch, which the text
> allows:
> https://lore.kernel.org/all/[email protected]/
> Pointing HEAD at the main branch with gitolite's symbolic-ref, as he
> suggested, is up to each maintainer and is not covered here:
> https://lore.kernel.org/all/20260924040030.GB5048@sol/
> - Ted: documenting the branch at all was his suggestion (Link: above).
>
> v1:
> https://lore.kernel.org/all/64b0be79c535bb9545f9f81a5044146a8726c761.1790220653.git.matthias.goerg...@gmail.com/
>
> Documentation/process/submitting-patches.rst | 8 ++++++++
> MAINTAINERS | 5 +++++
> 2 files changed, 13 insertions(+)
>
> diff --git a/Documentation/process/submitting-patches.rst
> b/Documentation/process/submitting-patches.rst
> index 7ae79452e1b4..cfc72975a9d6 100644
> --- a/Documentation/process/submitting-patches.rst
> +++ b/Documentation/process/submitting-patches.rst
> @@ -40,6 +40,14 @@ patches prepared against those trees. See the **T:**
> entry for the subsystem
> in the MAINTAINERS file to find that tree, or simply ask the maintainer if
> the tree is not listed there.
>
> +What to base a patch on also depends on what it is. A fix that should reach
> +mainline during the current release cycle, such as a regression fix, is
> +usually based on the latest mainline or on the subsystem's fixes branch. New
> +development is usually based on the branch where the subsystem queues work
> for
> +the next merge window, which linux-next merges and which the **T:** entry may
> +name. When in doubt, check the subsystem's **P:** profile, if there is one,
> +or ask the maintainer.
> +
> .. _describe_changes:
>
> Describe your changes
> diff --git a/MAINTAINERS b/MAINTAINERS
> index c52ec2d7d3c1..c3f8fc52f3ec 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -30,6 +30,11 @@ Descriptions of section entries and preferred order
> See Documentation/maintainer/maintainer-entry-profile.rst for details.
> T: *SCM* tree type and location.
> Type is one of: git, hg, quilt, stgit, topgit
> + A git entry may name a branch after the URL, and an entry may
> + have several T: lines, for example one per branch. What each
> + branch is for, and what to base patches on, differs between
> + subsystems: see the P: profile, if there is one, or ask the
> + maintainer.
> F: *Files* and directories wildcard patterns.
> A trailing slash includes all files and subdirectory files.
> F: drivers/net/ all files in and below drivers/net
>
> base-commit: 165768bb70265b5c38cf0b73fafd75be235f8b14
> --
> 2.55.0
>
Looks like a good change to me:
Reviewed-by: Niklas Cassel <[email protected]>