Because I always forget, here’s a reminder to myself on how to use
git format-patch and
git send-email from the command line.
The following example is for contributing to the [Buildroot Project], but the process is much the same for other mailing list-based projects.
Make your changes on an up-to-date branch from Buildroot master
git checkout -b package/foobar git fetch --all --tags git rebase origin/master
Use logical commits; upgrade package as one, changing/extending behavior as another, etc.
Use commit messages to record why changes are made. The first line is usally a (very) brief summary referencing the sub-system:
package/foobar: bump version to v1.2.3 Signed-off-by: Your Name <firstname.lastname@example.org>
Verify formatting of package files; .in, .mk, etc.
Test your package/change with a set of cross-compilation toolchains. The
.configfile is a menuconfig snippet enabling the package to test:
./utils/test-pkg -c foobar.config -p foobar
Format your patches, with the optional
--cover-letter, very useful to explain a series of patches:
git format-patch --cover-letter -M -n -s -o mail origin/master
Figure out DEVELOPERS to Cc in your correspondence to the mailing list:
At the very least, the following should be output:
git send-email --to email@example.com
Send the email(s) by copy-pasting the output and appending
git send-email --to firstname.lastname@example.org mail/*
Git now adds a Cc to you and offers you one last chance to proofread the contents (remember the email headers!) before you send.
Note: if you haven’t set up your
~/.gitconfigyet for sending email, please see https://git-scm.com/docs/git-send-email for help.