blob: ba47687cd4f2d9a186f875361b46847c5c084364 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
#!/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|3_4|4_0)-branch'
ADD_BRANCHES='HEAD autovect-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}"
# 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} -q co -N ${SVNROOT}/trunk/`dirname $i` `basename $i`
done
else
for i in $FILES; do
${SVN} -q 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"
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
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
|