#!/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