diff --git a/maintainer-scripts/update_version_git b/maintainer-scripts/update_version_git index b1b5f4c9cf9..4ebeee5afad 100755 --- a/maintainer-scripts/update_version_git +++ b/maintainer-scripts/update_version_git @@ -1,85 +1,28 @@ #!/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 +${GIT} clone -q -b master "$GITROOT" "$SUBDIR" - # There are no files to commit yet. - COMMIT_FILES="" +cp -a $SUBDIR/contrib/gcc-changelog $BASEDIR/gcc-changelog +cd "$SUBDIR" +python3 ../gcc-changelog/git_update_version.py -p +RESULT=$? - cd "$SUBDIR" - for file in $datestamp_FILES; do - if test -f $file; then - echo "${CURR_DATE}" > $file.new - - 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 - - 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