diff options
Diffstat (limited to 'scripts/patch_git.sh')
-rw-r--r-- | scripts/patch_git.sh | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/scripts/patch_git.sh b/scripts/patch_git.sh index 36a2d6af8..40653a576 100644 --- a/scripts/patch_git.sh +++ b/scripts/patch_git.sh @@ -3,7 +3,7 @@ # Patch sources using git-am, aligning things to use git-format-patch for # update-patches. # -# (c) 2016 Phil Sutter <phil@nwl.cc> +# (c) 2021 Phil Sutter <phil@nwl.cc> # # Based on the classic patch.sh, written by: # @@ -36,14 +36,11 @@ if [ ! -d .git ]; then find . -name .gitignore -delete git init git add . - git commit -a --allow-empty \ - --author="OpenADK <wbx@openadk.org>" \ - -m "OpenADK patch marker: 0000" +elif [ -e .git/rebase-apply ]; then + git am --abort fi -[ -e .git/rebase-apply ] && \ - git am --abort -i=1 +i=0 patch_tmp=$(printf ".git/patch_tmp/%04d" $i) while [ -d $patch_tmp ]; do let "i++" @@ -52,6 +49,10 @@ done mkdir -p $patch_tmp patch_series=$(printf "%04d" $i) +git commit --allow-empty --no-signoff --no-gpg-sign \ + --author="OpenADK <wbx@openadk.org>" \ + -m "OpenADK patch marker: $patch_series" + cd $wd cd $patchdir for i in $(eval echo ${patchpattern}); do @@ -74,12 +75,15 @@ for i in $(eval echo ${patchpattern}); do esac [ -d "${i}" ] && echo "Ignoring subdirectory ${i}" && continue echo "$(basename $i)" >>${targetdir}/${patch_tmp}/__patchfiles__ - fake_hdr="" patchname="$(basename -s .gz -s .bz -s .bz2 -s .zip -s .Z -s .patch $i)" - if ! grep -q '^Subject: ' ${i}; then - fake_hdr="From: OpenADK <wbx@openadk.org>\nSubject: [PATCH] ${patchname#[0-9]*-}\n\n" - fi - { echo -en $fake_hdr; ${uncomp} ${i}; } >${targetdir}/${patch_tmp}/${patchname}.patch + { + if ! grep -q '^Subject: ' ${i}; then + echo "From: OpenADK <wbx@openadk.org>" + echo "Subject: [PATCH] ${patchname#[0-9]*-}" + echo "" + fi + ${uncomp} ${i} + } >${targetdir}/${patch_tmp}/${patchname}.patch cd $patchdir done @@ -93,6 +97,7 @@ done # XXX: this is unsafe and should be dropped at some point am_opts="-C1" +cd ${wd} realpath $patchdir >${targetdir}/${patch_tmp}/__patchdir__ cd ${targetdir} git am $am_opts ${patch_tmp}/*.patch @@ -100,6 +105,3 @@ if [ $? != 0 ] ; then echo "git-am failed! Please fix patches!" exit 1 fi -git commit -a --allow-empty \ - --author="OpenADK <wbx@openadk.org>" \ - -m "OpenADK patch marker: $patch_series" |