| #!/bin/sh | |
| # SPDX-License-Identifier: GPL-2.0-only | |
| set -eu | |
| diff_patch=$1 | |
| mkdir -p "$(dirname "${diff_patch}")" | |
| git -C "${srctree:-.}" diff HEAD > "${diff_patch}" | |
| if [ ! -s "${diff_patch}" ] || | |
| [ -z "$(git -C "${srctree:-.}" ls-files --other --exclude-standard | head -n1)" ]; then | |
| exit | |
| fi | |
| # The source tarball, which is generated by 'git archive', contains everything | |
| # you committed in the repository. If you have local diff ('git diff HEAD'), | |
| # it will go into ${diff_patch}. If untracked files are remaining, the resulting | |
| # source package may not be correct. | |
| # | |
| # Examples: | |
| # - You modified a source file to add #include "new-header.h" | |
| # but forgot to add new-header.h | |
| # - You modified a Makefile to add 'obj-$(CONFIG_FOO) += new-dirver.o' | |
| # but you forgot to add new-driver.c | |
| # | |
| # You need to commit them, or at least stage them by 'git add'. | |
| # | |
| # This script does not take care of untracked files because doing so would | |
| # introduce additional complexity. Instead, print a warning message here if | |
| # untracked files are found. | |
| # If all untracked files are just garbage, you can ignore this warning. | |
| echo >&2 "============================ WARNING ============================" | |
| echo >&2 "Your working tree has diff from HEAD, and also untracked file(s)." | |
| echo >&2 "Please make sure you did 'git add' for all new files you need in" | |
| echo >&2 "the source package." | |
| echo >&2 "=================================================================" |