Documentation/submitting-patches: Extend commit message layout description
Add more blurb about the level of detail that should be contained in a patch's commit message. Extend and make more explicit what text should be added under the --- line. Extend examples and split into more easily palatable paragraphs. This has been partially carved out from a tip subsystem handbook patchset by Thomas Gleixner: https://lkml.kernel.org/r/20181107171010.421878737@linutronix.de and incorporates follow-on comments. Signed-off-by: Borislav Petkov <bp@suse.de> Reviewed-by: Robert Richter <rrichter@amd.com> Link: https://lore.kernel.org/r/20210215141949.GB21734@zn.tnic [jc: Tweaked "example subjects" wording] Signed-off-by: Jonathan Corbet <corbet@lwn.net>
This commit is contained in:
parent
315c4e45f1
commit
875f82cb37
|
@ -630,16 +630,19 @@ not considered part of the summary phrase, but describe how the patch
|
|||
should be treated. Common tags might include a version descriptor if
|
||||
the multiple versions of the patch have been sent out in response to
|
||||
comments (i.e., "v1, v2, v3"), or "RFC" to indicate a request for
|
||||
comments. If there are four patches in a patch series the individual
|
||||
patches may be numbered like this: 1/4, 2/4, 3/4, 4/4. This assures
|
||||
that developers understand the order in which the patches should be
|
||||
applied and that they have reviewed or applied all of the patches in
|
||||
the patch series.
|
||||
comments.
|
||||
|
||||
A couple of example Subjects::
|
||||
If there are four patches in a patch series the individual patches may
|
||||
be numbered like this: 1/4, 2/4, 3/4, 4/4. This assures that developers
|
||||
understand the order in which the patches should be applied and that
|
||||
they have reviewed or applied all of the patches in the patch series.
|
||||
|
||||
Here are some good example Subjects::
|
||||
|
||||
Subject: [PATCH 2/5] ext2: improve scalability of bitmap searching
|
||||
Subject: [PATCH v2 01/27] x86: fix eflags tracking
|
||||
Subject: [PATCH v2] sub/sys: Condensed patch summary
|
||||
Subject: [PATCH v2 M/N] sub/sys: Condensed patch summary
|
||||
|
||||
The ``from`` line must be the very first line in the message body,
|
||||
and has the form:
|
||||
|
@ -652,34 +655,54 @@ then the ``From:`` line from the email header will be used to determine
|
|||
the patch author in the changelog.
|
||||
|
||||
The explanation body will be committed to the permanent source
|
||||
changelog, so should make sense to a competent reader who has long
|
||||
since forgotten the immediate details of the discussion that might
|
||||
have led to this patch. Including symptoms of the failure which the
|
||||
patch addresses (kernel log messages, oops messages, etc.) is
|
||||
especially useful for people who might be searching the commit logs
|
||||
looking for the applicable patch. If a patch fixes a compile failure,
|
||||
it may not be necessary to include _all_ of the compile failures; just
|
||||
enough that it is likely that someone searching for the patch can find
|
||||
it. As in the ``summary phrase``, it is important to be both succinct as
|
||||
well as descriptive.
|
||||
changelog, so should make sense to a competent reader who has long since
|
||||
forgotten the immediate details of the discussion that might have led to
|
||||
this patch. Including symptoms of the failure which the patch addresses
|
||||
(kernel log messages, oops messages, etc.) are especially useful for
|
||||
people who might be searching the commit logs looking for the applicable
|
||||
patch. The text should be written in such detail so that when read
|
||||
weeks, months or even years later, it can give the reader the needed
|
||||
details to grasp the reasoning for **why** the patch was created.
|
||||
|
||||
The ``---`` marker line serves the essential purpose of marking for patch
|
||||
handling tools where the changelog message ends.
|
||||
If a patch fixes a compile failure, it may not be necessary to include
|
||||
_all_ of the compile failures; just enough that it is likely that
|
||||
someone searching for the patch can find it. As in the ``summary
|
||||
phrase``, it is important to be both succinct as well as descriptive.
|
||||
|
||||
One good use for the additional comments after the ``---`` marker is for
|
||||
a ``diffstat``, to show what files have changed, and the number of
|
||||
inserted and deleted lines per file. A ``diffstat`` is especially useful
|
||||
on bigger patches. Other comments relevant only to the moment or the
|
||||
maintainer, not suitable for the permanent changelog, should also go
|
||||
here. A good example of such comments might be ``patch changelogs``
|
||||
which describe what has changed between the v1 and v2 version of the
|
||||
patch.
|
||||
The ``---`` marker line serves the essential purpose of marking for
|
||||
patch handling tools where the changelog message ends.
|
||||
|
||||
If you are going to include a ``diffstat`` after the ``---`` marker, please
|
||||
use ``diffstat`` options ``-p 1 -w 70`` so that filenames are listed from
|
||||
the top of the kernel source tree and don't use too much horizontal
|
||||
space (easily fit in 80 columns, maybe with some indentation). (``git``
|
||||
generates appropriate diffstats by default.)
|
||||
One good use for the additional comments after the ``---`` marker is
|
||||
for a ``diffstat``, to show what files have changed, and the number of
|
||||
inserted and deleted lines per file. A ``diffstat`` is especially useful
|
||||
on bigger patches. If you are going to include a ``diffstat`` after the
|
||||
``---`` marker, please use ``diffstat`` options ``-p 1 -w 70`` so that
|
||||
filenames are listed from the top of the kernel source tree and don't
|
||||
use too much horizontal space (easily fit in 80 columns, maybe with some
|
||||
indentation). (``git`` generates appropriate diffstats by default.)
|
||||
|
||||
Other comments relevant only to the moment or the maintainer, not
|
||||
suitable for the permanent changelog, should also go here. A good
|
||||
example of such comments might be ``patch changelogs`` which describe
|
||||
what has changed between the v1 and v2 version of the patch.
|
||||
|
||||
Please put this information **after** the ``---`` line which separates
|
||||
the changelog from the rest of the patch. The version information is
|
||||
not part of the changelog which gets committed to the git tree. It is
|
||||
additional information for the reviewers. If it's placed above the
|
||||
commit tags, it needs manual interaction to remove it. If it is below
|
||||
the separator line, it gets automatically stripped off when applying the
|
||||
patch::
|
||||
|
||||
<commit message>
|
||||
...
|
||||
Signed-off-by: Author <author@mail>
|
||||
---
|
||||
V2 -> V3: Removed redundant helper function
|
||||
V1 -> V2: Cleaned up coding style and addressed review comments
|
||||
|
||||
path/to/file | 5+++--
|
||||
...
|
||||
|
||||
See more details on the proper patch format in the following
|
||||
references.
|
||||
|
|
Loading…
Reference in New Issue