Rewrite maintainer-scripts/update_version_git

This patch rewrites update_version_git to be just a thin wrapper around
Martin's new python script.  This just arranges to check out the gcc
repo in a temporary directory, copy out the contrib scripts so that
the running script doesn't change with branch checkouts and runs the script.

I've run it today manually but hopefully we can do it from cron again
from tomorrow.

2020-05-27  Jakub Jelinek  <jakub@redhat.com>

	* update_version_git: Rewrite using
	contrib/gcc-changelog/git_update_version.py.
This commit is contained in:
Jakub Jelinek 2020-05-27 10:24:09 +02:00
parent b423f910dc
commit 79ea774f9a

View file

@ -1,85 +1,28 @@
#!/bin/sh #!/bin/sh
# #
# Update the current version date in all files in the tree containing # Update the current version date in DATESTAMP files and generate
# it. Consider all single-component-version release branches except # ChangeLog file entries since the last DATESTAMP update from the
# those matching the regular expression in $IGNORE_BRANCHES, and also # commit messages.
# consider those branches listed in the space separated list in
# $ADD_BRANCHES.
GITROOT=${GITROOT:-"/git/gcc.git"} GITROOT=${GITROOT:-"/git/gcc.git"}
IGNORE_BRANCHES='releases/gcc-(.*\..*|5|6|7)'
ADD_BRANCHES='master'
# Run this from /tmp. # Run this from /tmp.
export GITROOT export GITROOT
BASEDIR=/tmp/$$ BASEDIR=`mktemp -d`
/bin/rm -rf "$BASEDIR"
/bin/mkdir "$BASEDIR"
cd "$BASEDIR" cd "$BASEDIR"
GIT=${GIT:-/usr/local/bin/git} 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. # Assume all will go well.
RESULT=0
SUBDIR=$BASEDIR/gcc SUBDIR=$BASEDIR/gcc
for BRANCH in $BRANCHES; do ${GIT} clone -q -b master "$GITROOT" "$SUBDIR"
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. cp -a $SUBDIR/contrib/gcc-changelog $BASEDIR/gcc-changelog
COMMIT_FILES="" cd "$SUBDIR"
python3 ../gcc-changelog/git_update_version.py -p
RESULT=$?
cd "$SUBDIR" cd /tmp
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
/bin/rm -rf $BASEDIR /bin/rm -rf $BASEDIR
exit $RESULT exit $RESULT