diff options
author | dberlin <dberlin@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-10-16 00:59:09 +0000 |
---|---|---|
committer | dberlin <dberlin@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-10-16 00:59:09 +0000 |
commit | c9cef0254a893cfc9f104b3446febfbb5e9ba337 (patch) | |
tree | eedab77f773da858823a07112e07fcf86a6fc23d | |
parent | 12223fd59defcd087e8d5f1541e8903d8f74245a (diff) | |
download | gcc-c9cef0254a893cfc9f104b3446febfbb5e9ba337.tar.gz |
Modify update_version for SVN
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@105454 138bc75d-0d04-0410-961f-82ee72b054a4
-rwxr-xr-x | maintainer-scripts/update_version_svn | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/maintainer-scripts/update_version_svn b/maintainer-scripts/update_version_svn new file mode 100755 index 00000000000..00edc650714 --- /dev/null +++ b/maintainer-scripts/update_version_svn @@ -0,0 +1,133 @@ +#!/bin/sh +# +# Update the current version date in all files in the tree containing +# it. Consider all release branches except those matching the regular +# expression in $IGNORE_BRANCHES, and also consider those branches listed +# in $ADD_BRANCHES. + +SVNROOT=${SVNROOT:-"file:///svn/gcc"} +IGNORE_BRANCHES='gcc-(2_95|3_0|3_1|3_2|3_3)-branch' +ADD_BRANCHES='HEAD autovect-branch dfp-branch' + +# Run this from /tmp. +export SVNROOT +/bin/rm -rf /tmp/$$ +/bin/mkdir /tmp/$$ +cd /tmp/$$ + +# The path to cvs. +SVN=${SVN:-/usr/bin/svn} + +# Compute the branches which we should update. +BRANCHES=`$SVN ls $SVNROOT/branches \ + | sed -e 's/\///' \ + | egrep 'gcc-[0-9]+_[0-9]+-branch$' \ + | egrep -v $IGNORE_BRANCHES` + +# Always update the mainline. +BRANCHES="${BRANCHES} ${ADD_BRANCHES}" +BRANCHES="HEAD" +# ARGS is passed to 'cvs co' +CURR_DATE=`/bin/date +"%Y%m%d"` + +# version is contained within a char* +textstring_FILES="gcc/version.c" + +# version is contained within a #define +cppdefine_FILES="libstdc++-v3/include/bits/c++config" + +# version is all there is +datestamp_FILES="gcc/DATESTAMP" + +FILES="$textstring_FILES $cppdefine_FILES $datestamp_FILES" +DIRS="$textstring_DIRS $cppdefine_DIRS $datestamp_DIRS" + +# Assume all will go well. +RESULT=0 +for BRANCH in $BRANCHES; do + echo "Working on \"$BRANCH\"." + # Check out the files on the branch. HEAD is a special case; if + # you check out files with -r HEAD, CVS will not let you check + # in changes. + if test "$BRANCH" = HEAD; then + for i in $FILES; do + ${SVN} co -N ${SVNROOT}/trunk/`dirname $i` `basename $i` + done + else + for i in $FILES; do + ${SVN} co -N ${SVNROOT}/branches/${BRANCH}/`dirname $i` `basename $i` + done + fi + + # There are no files to commit yet. + COMMIT_FILES="" + + for file in $textstring_FILES; do + dirname=`basename $file` + file=`basename $file` + file="$dirname/$file" + echo "$file" + exit 0; + if test -f $file; then + /bin/sed <$file >$file.new -e \ + "s/\(.*\"[^ ]*\) [0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/\1 ${CURR_DATE}/" + + 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 + for file in $cppdefine_FILES; do + dirname=`basename $file` + file=`basename $file` + file="$dirname/$file" + if test -f $file; then + /bin/sed <$file >$file.new -e \ + "s/\(#.*\) [0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/\1 ${CURR_DATE}/" + + 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 + + for file in $datestamp_FILES; do + dirname=`basename $file` + file=`basename $file` + file="$dirname/$file" + 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 + echo "$COMMIT_FILES" + if test -n "$COMMIT_FILES"; then + for i in $COMMIT_FILES; do + echo "Attempting to commit $i" + if ! ${SVN} commit -m "Daily bump." $i; then + # If we could not commit the files, indicate failure. + RESULT=1 + fi + done + fi + + # Remove the files. + for i in $FILES; do + rm -rf /tmp/$$/`basename $i` + done +done + +/bin/rm -rf /tmp/$$ +exit $RESULT |