From 9eab93168d26b6a459bf59a7a4f0344ada9872b3 Mon Sep 17 00:00:00 2001 From: Nicholas Chin Date: Fri, 11 Nov 2022 14:28:46 -0700 Subject: 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 Reviewed-on: https://review.coreboot.org/c/coreboot/+/69458 Tested-by: build bot (Jenkins) Reviewed-by: Angel Pons --- util/kconfig/README.md | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/util/kconfig/README.md b/util/kconfig/README.md index 1350e04300..4d508a5e19 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 + +4. Import the patch info quilt: + + $ quilt import + +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 + +6. Add the changed files to be tracked against the quilt: + + $ quilt add + +7. Re-apply your changes from the patch file: + + $ git apply + +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 -- cgit v1.2.3