diff options
Diffstat (limited to 'scripts/merge-new-release.sh')
-rwxr-xr-x | scripts/merge-new-release.sh | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/scripts/merge-new-release.sh b/scripts/merge-new-release.sh new file mode 100755 index 00000000000..a2763c69bb1 --- /dev/null +++ b/scripts/merge-new-release.sh @@ -0,0 +1,48 @@ +#!/bin/bash + +case $1 in + v*-dts) ;; + '') + echo >&2 "No version given" + exit 1 + ;; + *) + echo >&2 "Unexpected version: $1" + exit 1 + ;; +esac + +v=$1 + +set -e + +# Use the date of Linus' originally tagged commit for the merge. This might +# differ from what the commit that the rewritten tag points to, since the +# orignal commit may have been discarded. +export GIT_AUTHOR_DATE=$(git log -1 --format=%ad "${v%-dts}") +if [ ! "${GIT_AUTHOR_DATE}" ] ; then + echo >&2 "Unable to determine commit date for merge" + exit 1 +fi +if [ "${v}" = "v2.6.12-rc2-dts" ] ; then + auh="--allow-unrelated-histories" +fi +git merge $auh --no-edit "${v}-raw" +git clean -fdqx +# Use the date of Linus' original tag for the tag. +case "${v%-dts}" in + v2.6.12*|v2.6.13-rc[123]) + # Commits from v2.6.12-rc2..v2.6.13-rc3 lacked the date. So use the commit's + # date. + export GIT_COMMITTER_DATE="${GIT_AUTHOR_DATE}" + ;; + *) + export GIT_COMMITTER_DATE="$(git for-each-ref --format='%(taggerdate)' "refs/tags/${v%-dts}")" + ;; +esac +if [ ! "${GIT_COMMITTER_DATE}" ] ; then + echo >&2 "Unable to determine date for tag" + exit 1 +fi +git tag -s -m "Tagging ${v}" -u 695A46C6 "${v}" +make -k -j12 -s |