gen-diff-patch (ca712e47054678c5ce93a0e0f686353ad5561195) | gen-diff-patch (aa7d233f45b4c549750044c9921f7afcbe50925b) |
---|---|
1#!/bin/sh 2# SPDX-License-Identifier: GPL-2.0-only 3 | 1#!/bin/sh 2# SPDX-License-Identifier: GPL-2.0-only 3 |
4diff_patch="${1}" 5untracked_patch="${2}" 6srctree=$(dirname $0)/../.. | 4diff_patch=$1 |
7 | 5 |
8rm -f ${diff_patch} ${untracked_patch} | 6mkdir -p "$(dirname "${diff_patch}")" |
9 | 7 |
10if ! ${srctree}/scripts/check-git; then 11 exit 12fi | 8git -C "${srctree:-.}" diff HEAD > "${diff_patch}" |
13 | 9 |
14mkdir -p "$(dirname ${diff_patch})" "$(dirname ${untracked_patch})" 15 16git -C "${srctree}" diff HEAD > "${diff_patch}" 17 18if [ ! -s "${diff_patch}" ]; then 19 rm -f "${diff_patch}" | 10if [ ! -s "${diff_patch}" ] || 11 [ -z "$(git -C "${srctree:-.}" ls-files --other --exclude-standard | head -n1)" ]; then |
20 exit 21fi 22 | 12 exit 13fi 14 |
23git -C ${srctree} status --porcelain --untracked-files=all | 24while read stat path 25do 26 if [ "${stat}" = '??' ]; then 27 28 if ! diff -u /dev/null "${srctree}/${path}" > .tmp_diff && 29 ! head -n1 .tmp_diff | grep -q "Binary files"; then 30 { 31 echo "--- /dev/null" 32 echo "+++ linux/$path" 33 cat .tmp_diff | tail -n +3 34 } >> ${untracked_patch} 35 fi 36 fi 37done 38 39rm -f .tmp_diff 40 41if [ ! -s "${diff_patch}" ]; then 42 rm -f "${diff_patch}" 43 exit 44fi | 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. 32echo >&2 "============================ WARNING ============================" 33echo >&2 "Your working tree has diff from HEAD, and also untracked file(s)." 34echo >&2 "Please make sure you did 'git add' for all new files you need in" 35echo >&2 "the source package." 36echo >&2 "=================================================================" |