This adds Kees' clever apply hook to the kernel documentation so it can be easily references when needed. Cc: Kees Cook <keescook@xxxxxxxxxxxx> Link: https://lists.linuxfoundation.org/pipermail/ksummit-discuss/2019-July/006608.html Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx> --- .../process/applying-patches-using-git.rst | 43 +++++++++++++++++++ Documentation/process/index.rst | 1 + 2 files changed, 44 insertions(+) create mode 100644 Documentation/process/applying-patches-using-git.rst diff --git a/Documentation/process/applying-patches-using-git.rst b/Documentation/process/applying-patches-using-git.rst new file mode 100644 index 000000000000..60955aa62d42 --- /dev/null +++ b/Documentation/process/applying-patches-using-git.rst @@ -0,0 +1,43 @@ +.. _applying_patches_using_git: + +Applying Patches to the Linux Kernel Using git +++++++++++++++++++++++++++++++++++++++++++++++ + +For the most part, using git to apply patches comes down to just following +the established usage already documented in the git documentation. This is +pretty intuitive since git was developed initially for Linux kernel +development. + +In some cases the Linux kernel development has special quirks and usage +patterns that are not an intrinsic part of git. + +This file documents some best practices. + + +Creating commit links to lore.kernel.org +======================================== + +The web site http://lore.kernel.org is meant as a grand archive of all mail +list traffic concerning or influencing the kernel development. Storing archives +of patches here is a recommended practice, and when a maintainer applies a +patch to a subsystem tree, it is a good idea to provide a Link: tag with a +reference back to the lore archive so that people that browse the commit +history can find related discussions and rationale behind a certain change. +The link tag will look like this: + + Link: https://lore.kernel.org/r/<message-id> + +This can be achieved by adding the following hook into your git: + +.. code-block:: none + + $ git config am.messageid true + $ cat >.git/hooks/applypatch-msg <<'EOF' + #!/bin/sh + . git-sh-setup + perl -pi -e 's|^Message-Id:\s*<?([^>]+)>?$|Link: https://lore.kernel.org/r/$1|g;' "$1" + test -x "$GIT_DIR/hooks/commit-msg" && + exec "$GIT_DIR/hooks/commit-msg" ${1+"$@"} + : + EOF + $ chmod a+x .git/hooks/applypatch-msg diff --git a/Documentation/process/index.rst b/Documentation/process/index.rst index e2c9ffc682c5..482b07402836 100644 --- a/Documentation/process/index.rst +++ b/Documentation/process/index.rst @@ -46,6 +46,7 @@ Other guides to the community that are of interest to most developers are: kernel-docs deprecated embargoed-hardware-issues + applying-patches-using-git These are some overall technical guides that have been put here for now for lack of a better place. -- 2.21.0