Merge tag 'pinctrl-v6.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw...
[linux-block.git] / scripts / package / gen-diff-patch
1 #!/bin/sh
2 # SPDX-License-Identifier: GPL-2.0-only
3
4 diff_patch=$1
5
6 mkdir -p "$(dirname "${diff_patch}")"
7
8 git -C "${srctree:-.}" diff HEAD > "${diff_patch}"
9
10 if [ ! -s "${diff_patch}" ] ||
11    [ -z "$(git -C "${srctree:-.}" ls-files --other --exclude-standard | head -n1)" ]; then
12         exit
13 fi
14
15 # The source tarball, which is generated by 'git archive', contains everything
16 # you committed in the repository. If you have local diff ('git diff HEAD'),
17 # it will go into ${diff_patch}. If untracked files are remaining, the resulting
18 # source package may not be correct.
19 #
20 # Examples:
21 #  - You modified a source file to add #include "new-header.h"
22 #    but forgot to add new-header.h
23 #  - You modified a Makefile to add 'obj-$(CONFIG_FOO) += new-dirver.o'
24 #    but you forgot to add new-driver.c
25 #
26 # You need to commit them, or at least stage them by 'git add'.
27 #
28 # This script does not take care of untracked files because doing so would
29 # introduce additional complexity. Instead, print a warning message here if
30 # untracked files are found.
31 # If all untracked files are just garbage, you can ignore this warning.
32 echo >&2 "============================ WARNING ============================"
33 echo >&2 "Your working tree has diff from HEAD, and also untracked file(s)."
34 echo >&2 "Please make sure you did 'git add' for all new files you need in"
35 echo >&2 "the source package."
36 echo >&2 "================================================================="