[PATCH v2 2/2] docs: checkpatch: Document checkpatch-ignore feature
From: Brendan Jackman
Date: Wed Jan 15 2025 - 10:34:14 EST
If included in patch descriptions, this will function much like the
--ignore flag.
It requires some rather obscure Git features to take advantage of
this, so provide some examples of how to do that.
Signed-off-by: Brendan Jackman <jackmanb@xxxxxxxxxx>
---
Notes (checkpatch-ignore):
EMAIL_SUBJECT
Documentation/dev-tools/checkpatch.rst | 46 ++++++++++++++++++++++++++++++++++
1 file changed, 46 insertions(+)
diff --git a/Documentation/dev-tools/checkpatch.rst b/Documentation/dev-tools/checkpatch.rst
index abb3ff6820766ee0c29112b256bcc44ce41fffba..6215b24b25b36709c815cf08de33f1609c80c0c7 100644
--- a/Documentation/dev-tools/checkpatch.rst
+++ b/Documentation/dev-tools/checkpatch.rst
@@ -12,6 +12,49 @@ Checkpatch is not always right. Your judgement takes precedence over checkpatch
messages. If your code looks better with the violations, then its probably
best left alone.
+Inoring violations
+==================
+
+As well as the --ignore flag documented below, violation types can be ignored
+for a specific patch by including a block after the "---" in the following
+format::
+
+ Notes(checkpatch-ignore):
+ TYPE_1,TYPE_2
+ TYPE_3
+
+If using Git, you can store that information alongside your commit using
+`notes <https://git-scm.com/docs/git-notes>`_. To set this up:
+
+1. Configure git to include the `checkpatch-ignore` notes ref in formatted
+ patches::
+
+ git config set format.notes checkpatch-ignore
+
+ If you use checkpatch in `--git` mode, this isn't necessary, it will include
+ the `checkpatch-ignore` note regardless.
+
+2. Configure git to persist notes across amends and rebases::
+
+ git config set notes.rewriteRef "refs/notes/checkpatch-ignore"
+
+ (To enable this behaviour for _all_ notes, set `refs/notes/**` instead).
+
+ Also ensure that `notes.rewrite.rebase` and `notes.rewrite.amend` have not
+ been set to `false`.
+
+3. Now, to set the note on the HEAD commit, use a command like::
+
+ git notes --ref checkpatch-ignore add -m "TYPE_1,TYPE_2"
+
+ Beware that blank lines terminate the `checkpatch-ignore` block, so if you
+ use `git notes append` to ignore additional types, you'll need to also set
+ `--no-separator`::
+
+ git notes --ref checkpatch-ignore append -m "TYPE_3" --no-separator
+
+To see the names of the error type in checkpatch output, set the `--show-types`
+option.
Options
=======
@@ -114,6 +157,9 @@ Available options:
Checkpatch will not emit messages for the specified types.
+ Note that violations can also be permanently disabled using the
+ Checkpatch-ignore patch footer.
+
Example::
./scripts/checkpatch.pl mypatch.patch --ignore EMAIL_SUBJECT,BRACES
--
2.48.0.rc2.279.g1de40edade-goog