当前位置:操作系统 > Unix/Linux >>

CVS-RCS(8)

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 "================================================"

  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 "================================================"

  print

  }

  check_out_files

  _________________________________________________________________ 本文来自:http://www.xiaoyaxiao.com/3938.html
发表您的高见!
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,