summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicholas Chin <nic.c3.14@gmail.com>2022-11-11 14:28:46 -0700
committerAngel Pons <th3fanbus@gmail.com>2022-12-01 22:12:29 +0000
commit9eab93168d26b6a459bf59a7a4f0344ada9872b3 (patch)
treea073e3caa80452ce7db74ffa8a705644f9eefd29
parenta7f669049daadf6e7c6b3c66ec6b8fc973c7bd46 (diff)
downloadcoreboot-9eab93168d26b6a459bf59a7a4f0344ada9872b3.tar.gz
coreboot-9eab93168d26b6a459bf59a7a4f0344ada9872b3.tar.bz2
coreboot-9eab93168d26b6a459bf59a7a4f0344ada9872b3.zip
util/kconfig/README.md: Add notes about adding a new quilt patch
The patches for kconfig need to be in a format compatible with the quilt tool, and usually also contain a header with some additional info like the git commit. This header is in the same format as patches produced by `git format-patch`, but the diff style git uses is incompatible with quilt and there does not seem to be a straightforward way to format the diff section to work. Add some documentation for a method I found to go from a git commit to a quilt compatible patch with git headers. Change-Id: I7a8bbe41e0864be1d28116742b6b8b3fc440cc31 Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/69458 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Angel Pons <th3fanbus@gmail.com>
-rw-r--r--util/kconfig/README.md41
1 files changed, 41 insertions, 0 deletions
diff --git a/util/kconfig/README.md b/util/kconfig/README.md
index 1350e0430069..4d508a5e194e 100644
--- a/util/kconfig/README.md
+++ b/util/kconfig/README.md
@@ -37,3 +37,44 @@ Linux.
Check that kconfig still works, `git add` and `git commit` the changes and
write a meaningful commit message that documents what Linux kconfig version
the tree has been upreved to.
+
+## Adding a new patch
+The format of the patches to kconfig is a mix of the headers produced by `git
+format-patch` and the patch format of quilt. However neither git nor quilt
+seems to have any functionality to directly produce a file in such a format
+
+To add a patch in this format:
+1. Add your changes to the sources and `git commit` them
+2. Generate a git patch for the commit:
+
+ $ git format-patch HEAD~
+
+3. Reverse apply the newly created patch file to restore the tree back to the
+ state quilt thinks it is in:
+
+ $ git apply -R <the patch file>
+
+4. Import the patch info quilt:
+
+ $ quilt import <the patch file>
+
+5. Force push the change to the top of quilt's patch stack (quilt won't like
+ the git diff style and would normally refuse to apply the patch):
+
+ $ quilt push -f <the patch file>
+
+6. Add the changed files to be tracked against the quilt:
+
+ $ quilt add <the files you changed>
+
+7. Re-apply your changes from the patch file:
+
+ $ git apply <the patch file>
+
+8. Add the changes to quilt to regenerate the patch file in a quilt compatible
+ format while keeping the git header:
+
+ $ quilt refresh
+
+9. The new patch file and updated patches/series files can now be added to the
+ git commit