4.12 sfreeze
注意 : Korn shell /bin/ksh 在你从Linux CD-ROM 安装 pdksh*.rpm 时就会产
生
请把他存成一般文字档并改变存取权限 chmod a+rx
_________________________________________________________________
#!/bin/ksh
# CVS program sfreeze
# Program to freeze and cut out the release of source tree from CVS
cmdname=`basename $0`
Usage()
{
print "\nUsage: $cmdname symbolic_tag "
print "\nFor example :- "
print " cd \$HOME"
print " $cmdname REVISION_1 mesa"
print "To see the list of revisons do -"
print "slog and see the symbolic name and do -"
print "cvs history -T"
print "\nTo create a branch off-shoot from main trunk, use"
print "the -b and -r options which makes the tag a branch tag. This is"
print "useful for creating a patch to previously released software"
print "For example :- "
print " cd \$HOME"
print " cvs rtag -b -r REVISION_1 REVISION_1_1 mesa"
print " "
# print "\nTag info is located at \$CVSROOT/CVSROOT/taginfo,v"
# print "You can do - cd $HOME; sget CVSROOT"
# print "to see this file"
exit
}
# Command getopt will not supported in next major release.
# Use getopts instead.
#while getopts r: ii
#do
# case $ii in
# r) FLAG1=$ii; OARG1="$OPTARG";;
# ?) Usage; exit 2;;
# esac
#done
#shift ` expr $OPTIND - 1 `
#echo FLAG1 = $FLAG1 , OARG1 = $OARG1
if [ $# -lt 2 ]; then
Usage
fi
if [ ! -d $2 ]; then
print "\nError: Second argument $2 is not a directory!"
print " Aborting $cmdname...."
print " "
exit
fi
# cvs rtag symbolic_tag
cvs rtag $1 $2
print "\nDone $cmdname. $cmdname successful"
_________________________________________________________________
4.13 saddtree
注意 : Korn shell /bin/ksh 在你从Linux CD-ROM 安装 pdksh*.rpm 时就会产
生
请把他存成一般文字档并改变存取权限 chmod a+rx。
_________________________________________________________________
#!/bin/ksh
################################################################
# Sample Program to checkin a directory tree (let's say SAMP) into CVS
# Note that if SAMP directory is not in CVS than you would use sadd
# command and -
# cd SAMP; cvs import SAMP V_1_0 R_1_0
# After running this program do -
# cd $HOME/foo/SAMP
# cvs import foo/SAMP V1_0 Rev_1_0
################################################################
hme=` echo $HOME | cut -f1 -d' ' `
if [ "$hme" = "" ]; then
print "\nError: \$HOME is not set!!\n"
exit
fi
sampdir=$hme/foo/SAMP
check_out_files()
{
# Now check out the files
tmp2f=$hme/tmp2.baksamp.sh
cd $hme
\rm -rf foo/SAMP
cvs -w checkout foo/SAMP
cd $hme/foo
find SAMP -type f -print > $tmp2f
cd $hme
for ii in `cat $tmp2f`
do
iidir=`dirname $ii`
iifile=`basename $ii`
if [ "$iifile" = "Root" -o "$iifile" = "Repository" -o "$iifile
" = "Entries" ]; then
continue
fi
jjdir=` echo $iidir | cut -d'/' -f2-1000 `
cp $hme/foo/SAMP.tobe/$jjdir/$iifile $hme/foo/$iidir/$iifile
echo "cp $hme/foo/SAMP.tobe/$jjdir/$iifile $hme/foo/$iidir/$ii
file "
cvs add foo/$iidir/$iifile
done
print "================================================"
print " Now run cvs commit foo/SAMP"
print " After commit. Do - "
print " cd foo; rm -rf SAMP and "
print " get fresh copy, sget SAMP"
print " Verify with slog filename.samp to see new revision"
print "================================================"
}
check_out_files
_________________________________________________________________