Home | History | Annotate | Line # | Download | only in maintainer-scripts
update_version_svn revision 1.6
      1  1.1  mrg #!/bin/sh
      2  1.1  mrg #
      3  1.1  mrg # Update the current version date in all files in the tree containing
      4  1.1  mrg # it.  Consider all release branches except those matching the regular
      5  1.1  mrg # expression in $IGNORE_BRANCHES, and also consider those branches listed
      6  1.1  mrg # in the space separated list in $ADD_BRANCHES.
      7  1.1  mrg 
      8  1.1  mrg SVNROOT=${SVNROOT:-"file:///svn/gcc"}
      9  1.6  mrg IGNORE_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)-branch'
     10  1.1  mrg ADD_BRANCHES='HEAD'
     11  1.1  mrg 
     12  1.1  mrg # Run this from /tmp.
     13  1.1  mrg export SVNROOT
     14  1.1  mrg /bin/rm -rf /tmp/$$
     15  1.1  mrg /bin/mkdir /tmp/$$
     16  1.1  mrg cd /tmp/$$
     17  1.1  mrg 
     18  1.1  mrg SVN=${SVN:-/usr/bin/svn}
     19  1.1  mrg 
     20  1.1  mrg # Compute the branches which we should update.
     21  1.1  mrg BRANCHES=`$SVN ls $SVNROOT/branches \
     22  1.1  mrg 	  | sed -e 's/\///' \
     23  1.6  mrg           | egrep 'gcc-[0-9]+(_[0-9]+)?-branch$' \
     24  1.1  mrg           | egrep -v $IGNORE_BRANCHES`
     25  1.1  mrg # Always update the mainline.
     26  1.1  mrg BRANCHES="${BRANCHES} ${ADD_BRANCHES}"
     27  1.1  mrg 
     28  1.3  mrg # This is put into the datestamp files.
     29  1.1  mrg CURR_DATE=`/bin/date +"%Y%m%d"`
     30  1.1  mrg 
     31  1.1  mrg datestamp_FILES="gcc/DATESTAMP"
     32  1.1  mrg 
     33  1.1  mrg 
     34  1.1  mrg # Assume all will go well.
     35  1.1  mrg RESULT=0
     36  1.1  mrg for BRANCH in $BRANCHES; do
     37  1.1  mrg   echo "Working on \"$BRANCH\"."
     38  1.3  mrg   # Check out the files on the branch.  HEAD is in a different namespace.
     39  1.1  mrg   if test "$BRANCH" = HEAD; then 
     40  1.3  mrg     SVNROOT2=${SVNROOT}/trunk
     41  1.3  mrg   else    
     42  1.3  mrg     SVNROOT2=${SVNROOT}/branches/${BRANCH}
     43  1.1  mrg   fi
     44  1.1  mrg 
     45  1.3  mrg   for i in $datestamp_FILES; do
     46  1.3  mrg     ${SVN} -q co -N ${SVNROOT2}/`dirname $i` `basename $i`
     47  1.3  mrg   done
     48  1.3  mrg 
     49  1.1  mrg   # There are no files to commit yet.
     50  1.1  mrg   COMMIT_FILES=""
     51  1.1  mrg 
     52  1.1  mrg   for file in $datestamp_FILES; do
     53  1.1  mrg     dirname=`basename $file`
     54  1.1  mrg     file=`basename $file`
     55  1.1  mrg     file="$dirname/$file"
     56  1.1  mrg     if test -f $file; then
     57  1.1  mrg       echo ${CURR_DATE} > $file.new
     58  1.1  mrg 
     59  1.1  mrg       if /usr/bin/cmp -s $file $file.new; then
     60  1.1  mrg 	rm -f $file.new
     61  1.1  mrg       else
     62  1.1  mrg 	mv -f $file.new $file
     63  1.1  mrg         COMMIT_FILES="$COMMIT_FILES $file"
     64  1.1  mrg       fi
     65  1.1  mrg     fi
     66  1.1  mrg   done
     67  1.1  mrg 
     68  1.1  mrg   if test -n "$COMMIT_FILES"; then
     69  1.1  mrg     for i in $COMMIT_FILES; do
     70  1.1  mrg     echo "Attempting to commit $i"
     71  1.1  mrg     if ! ${SVN} commit -m "Daily bump." $i; then
     72  1.1  mrg        # If we could not commit the files, indicate failure.
     73  1.1  mrg        RESULT=1
     74  1.1  mrg      fi
     75  1.1  mrg     done
     76  1.1  mrg   fi
     77  1.1  mrg   
     78  1.1  mrg   # Remove the files.
     79  1.3  mrg   for i in $datestamp_FILES; do
     80  1.1  mrg    rm -rf /tmp/$$/`basename $i`
     81  1.1  mrg   done
     82  1.1  mrg done
     83  1.1  mrg 
     84  1.1  mrg /bin/rm -rf /tmp/$$
     85  1.1  mrg exit $RESULT
     86