1#! /bin/sh 2 3# rcsfreeze - assign a symbolic revision number to a configuration of RCS files 4 |
5# $Id: rcsfreeze.sh,v 4.6 1993/11/03 17:42:27 eggert Exp $ |
6 7# The idea is to run rcsfreeze each time a new version is checked 8# in. A unique symbolic revision number (C_[number], where number 9# is increased each time rcsfreeze is run) is then assigned to the most 10# recent revision of each RCS file of the main trunk. 11# 12# If the command is invoked with an argument, then this 13# argument is used as the symbolic name to freeze a configuration. --- 6 unchanged lines hidden (view full) --- 20# 21# The shell script works only on all RCS files at one time. 22# It is important that all changed files are checked in (there are 23# no precautions against any error in this respect). 24# file names: 25# {RCS/}.rcsfreeze.ver version number 26# {RCS/}.rscfreeze.log log messages, most recent first 27 |
28PATH=/usr/local/bin:/bin:/usr/bin:/usr/ucb:$PATH |
29export PATH 30 31DATE=`date` || exit 32# Check whether we have an RCS subdirectory, so we can have the right 33# prefix for our paths. |
34if test -d RCS 35then RCSDIR=RCS/ EXT= 36else RCSDIR= EXT=,v |
37fi 38 39# Version number stuff, log message file 40VERSIONFILE=${RCSDIR}.rcsfreeze.ver 41LOGFILE=${RCSDIR}.rcsfreeze.log 42# Initialize, rcsfreeze never run before in the current directory |
43test -r $VERSIONFILE || { echo 0 >$VERSIONFILE && >>$LOGFILE; } || exit |
44 45# Get Version number, increase it, write back to file. 46VERSIONNUMBER=`cat $VERSIONFILE` && 47VERSIONNUMBER=`expr $VERSIONNUMBER + 1` && 48echo $VERSIONNUMBER >$VERSIONFILE || exit 49 50# Symbolic Revision Number 51SYMREV=C_$VERSIONNUMBER --- 22 unchanged lines hidden (view full) --- 74 done 75 echo "----------- 76" && 77 cat $LOGFILE 78) >$TMPLOG && 79 80# combine old and new logfiles 81cp $TMPLOG $LOGFILE && |
82rm -f $TMPLOG && |
83 84# Now the real work begins by assigning a symbolic revision number |
85# to each rcs file. Take the most recent version on the default branch. |
86 |
87# If there are any .*,v files, throw them in too. 88# But ignore RCS/.* files that do not end in ,v. 89DOTFILES= 90for DOTFILE in ${RCSDIR}.*,v |
91do |
92 if test -f "$DOTFILE" 93 then 94 DOTFILES="${RCSDIR}.*,v" 95 break 96 fi |
97done 98 |
99exec rcs -q -n$SYMREVNAME: ${RCSDIR}*$EXT $DOTFILES |