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