#!/bin/sh
#
-# Update the current version date in all files in the tree containing
-# it. Consider all single-component-version release branches except
-# those matching the regular expression in $IGNORE_BRANCHES, and also
-# consider those branches listed in the space separated list in
-# $ADD_BRANCHES.
+# Update the current version date in DATESTAMP files and generate
+# ChangeLog file entries since the last DATESTAMP update from the
+# commit messages.
GITROOT=${GITROOT:-"/git/gcc.git"}
-IGNORE_BRANCHES='releases/gcc-(.*\..*|5|6|7)'
-ADD_BRANCHES='master'
# Run this from /tmp.
export GITROOT
-BASEDIR=/tmp/$$
-/bin/rm -rf "$BASEDIR"
-/bin/mkdir "$BASEDIR"
+BASEDIR=`mktemp -d`
cd "$BASEDIR"
GIT=${GIT:-/usr/local/bin/git}
-# Compute the branches which we should update.
-BRANCHES=`(cd $GITROOT \
- && ${GIT} for-each-ref --format='%(refname)' \
- 'refs/heads/releases/gcc-*') \
- | sed -e 's/refs\/heads\///' \
- | egrep -v $IGNORE_BRANCHES`
-# Always update the mainline.
-BRANCHES="${ADD_BRANCHES} ${BRANCHES}"
-
-# This is put into the datestamp files.
-CURR_DATE=`/bin/date +"%Y%m%d"`
-
-datestamp_FILES="gcc/DATESTAMP"
-
-
# Assume all will go well.
-RESULT=0
SUBDIR=$BASEDIR/gcc
-for BRANCH in $BRANCHES; do
- echo "Working on \"$BRANCH\"."
- # Check out the files on the branch.
- if [ -d "$SUBDIR" ]; then
- cd "$SUBDIR"
- ${GIT} pull -q
- ${GIT} checkout -q "$BRANCH"
- else
- ${GIT} clone -q -b "$BRANCH" "$GITROOT" "$SUBDIR"
- fi
-
- # There are no files to commit yet.
- COMMIT_FILES=""
-
- cd "$SUBDIR"
- for file in $datestamp_FILES; do
- if test -f $file; then
- echo "${CURR_DATE}" > $file.new
+${GIT} clone -q -b master "$GITROOT" "$SUBDIR"
- if /usr/bin/cmp -s $file $file.new; then
- rm -f $file.new
- else
- mv -f $file.new $file
- COMMIT_FILES="$COMMIT_FILES $file"
- fi
- fi
- done
+cp -a $SUBDIR/contrib/gcc-changelog $BASEDIR/gcc-changelog
+cd "$SUBDIR"
+python3 ../gcc-changelog/git_update_version.py -p
+RESULT=$?
- if test -n "$COMMIT_FILES"; then
- for i in $COMMIT_FILES; do
- echo "Attempting to commit $i"
- if ${GIT} commit -m "Daily bump." $i; then
- if ! ${GIT} push origin "$BRANCH"; then
- # If we could not push the files, indicate failure.
- RESULT=1
- fi
- else
- # If we could not commit the files, indicate failure.
- RESULT=1
- fi
- done
- fi
-done
+cd /tmp
/bin/rm -rf $BASEDIR
exit $RESULT