xref: /netbsd-src/external/gpl3/gcc.old/dist/maintainer-scripts/update_version_svn (revision c0a68be459da21030695f60d10265c2fc49758f8)
11debfc3dSmrg#!/bin/sh
21debfc3dSmrg#
31debfc3dSmrg# Update the current version date in all files in the tree containing
41debfc3dSmrg# it.  Consider all release branches except those matching the regular
51debfc3dSmrg# expression in $IGNORE_BRANCHES, and also consider those branches listed
61debfc3dSmrg# in the space separated list in $ADD_BRANCHES.
71debfc3dSmrg
81debfc3dSmrgSVNROOT=${SVNROOT:-"file:///svn/gcc"}
9*c0a68be4SmrgIGNORE_BRANCHES='gcc-(2_95|3_0|3_1|3_2|3_3|3_4|4_0|4_1|4_2|4_3|4_4|4_5|4_6|4_7|4_8|4_9|5|6)-branch'
101debfc3dSmrgADD_BRANCHES='HEAD'
111debfc3dSmrg
121debfc3dSmrg# Run this from /tmp.
131debfc3dSmrgexport SVNROOT
141debfc3dSmrg/bin/rm -rf /tmp/$$
151debfc3dSmrg/bin/mkdir /tmp/$$
161debfc3dSmrgcd /tmp/$$
171debfc3dSmrg
181debfc3dSmrgSVN=${SVN:-/usr/bin/svn}
191debfc3dSmrg
201debfc3dSmrg# Compute the branches which we should update.
211debfc3dSmrgBRANCHES=`$SVN ls $SVNROOT/branches \
221debfc3dSmrg	  | sed -e 's/\///' \
231debfc3dSmrg          | egrep 'gcc-[0-9]+(_[0-9]+)?-branch$' \
241debfc3dSmrg          | egrep -v $IGNORE_BRANCHES`
251debfc3dSmrg# Always update the mainline.
261debfc3dSmrgBRANCHES="${BRANCHES} ${ADD_BRANCHES}"
271debfc3dSmrg
281debfc3dSmrg# This is put into the datestamp files.
291debfc3dSmrgCURR_DATE=`/bin/date +"%Y%m%d"`
301debfc3dSmrg
311debfc3dSmrgdatestamp_FILES="gcc/DATESTAMP"
321debfc3dSmrg
331debfc3dSmrg
341debfc3dSmrg# Assume all will go well.
351debfc3dSmrgRESULT=0
361debfc3dSmrgfor BRANCH in $BRANCHES; do
371debfc3dSmrg  echo "Working on \"$BRANCH\"."
381debfc3dSmrg  # Check out the files on the branch.  HEAD is in a different namespace.
391debfc3dSmrg  if test "$BRANCH" = HEAD; then
401debfc3dSmrg    SVNROOT2=${SVNROOT}/trunk
411debfc3dSmrg  else
421debfc3dSmrg    SVNROOT2=${SVNROOT}/branches/${BRANCH}
431debfc3dSmrg  fi
441debfc3dSmrg
451debfc3dSmrg  for i in $datestamp_FILES; do
461debfc3dSmrg    ${SVN} -q co -N ${SVNROOT2}/`dirname $i` `basename $i`
471debfc3dSmrg  done
481debfc3dSmrg
491debfc3dSmrg  # There are no files to commit yet.
501debfc3dSmrg  COMMIT_FILES=""
511debfc3dSmrg
521debfc3dSmrg  for file in $datestamp_FILES; do
531debfc3dSmrg    dirname=`basename $file`
541debfc3dSmrg    file=`basename $file`
551debfc3dSmrg    file="$dirname/$file"
561debfc3dSmrg    if test -f $file; then
571debfc3dSmrg      echo ${CURR_DATE} > $file.new
581debfc3dSmrg
591debfc3dSmrg      if /usr/bin/cmp -s $file $file.new; then
601debfc3dSmrg	rm -f $file.new
611debfc3dSmrg      else
621debfc3dSmrg	mv -f $file.new $file
631debfc3dSmrg        COMMIT_FILES="$COMMIT_FILES $file"
641debfc3dSmrg      fi
651debfc3dSmrg    fi
661debfc3dSmrg  done
671debfc3dSmrg
681debfc3dSmrg  if test -n "$COMMIT_FILES"; then
691debfc3dSmrg    for i in $COMMIT_FILES; do
701debfc3dSmrg    echo "Attempting to commit $i"
711debfc3dSmrg    if ! ${SVN} commit -m "Daily bump." $i; then
721debfc3dSmrg       # If we could not commit the files, indicate failure.
731debfc3dSmrg       RESULT=1
741debfc3dSmrg     fi
751debfc3dSmrg    done
761debfc3dSmrg  fi
771debfc3dSmrg
781debfc3dSmrg  # Remove the files.
791debfc3dSmrg  for i in $datestamp_FILES; do
801debfc3dSmrg   rm -rf /tmp/$$/`basename $i`
811debfc3dSmrg  done
821debfc3dSmrgdone
831debfc3dSmrg
841debfc3dSmrg/bin/rm -rf /tmp/$$
851debfc3dSmrgexit $RESULT
86