首页 运维 网络学院 查看内容

CVS-RCS(五)

2005-6-13 04:52 604 0

摘要: 4.4 supdate 注意 : Korn shell /bin/ksh 在你从Linux CD-ROM 安装 pd...
关键词: print cmdname then file ans exit perms lockfile CVS fi

4.4 supdate 注意 : Korn shell /bin/ksh 在你从Linux CD-ROM 安装 pdksh*.rpm 时就会产 生 请把他存成一般文字档并改变存取权限 chmod a+rx _________________________________________________________________ #!/bin/ksh # CVS program supdate # Program to update the file from CVS read/write mode cmdname=`basename $0` if [ $# -lt 1 ]; then print " Usage: $cmdname " exit fi # Check if file already exists.... if [ $# -gt 0 -a -f $1 ]; then user_perms=" " group_perms=" " other_perms=" " user_perms=`ls -l $1 | awk '{print $1 }' | cut -b3-3 ` group_perms=`ls -l $1 | awk '{print $1 }' | cut -b6-6 ` other_perms=`ls -l $1 | awk '{print $1 }' | cut -b9-9 ` if [ "$user_perms" = "w" -o "$group_perms" = "w" -o "$other_perms" = "w" ]; then while : do print " $cmdname will backup your working file " print "$1 to $1.supdate_bak before doing any merges." print "Are you sure you want the merge the changes from " print -n "CVS repository to your working file ? [ n]: " read ans if [ "$ans" = "y" -o "$ans" = "Y" ]; then if [ -f $1.supdate_bak ]; then print " Warning : File $1.supdate_bak already exists!!" print "Please examine the file $1.supda te_bak and delete it" print "and than re-try this $cmdname " print "Aborting $cmdname ...." exit else cp $1 $1.supdate_bak break fi elif [ "$ans" = "n" -o "$ans" = "N" -o "$ans" = "" -o " $ans" = " " ]; then exit fi done fi fi if [ -d $1 ]; then print " Directory update is disabled as cvs update" print "merges the changes from repository to your working directory" print "So give the filename to update - as shown below: " print " Usage: $cmdname " exit # cvs update else cvs update $1 fi print " Done $cmdname. $cmdname successful" #print " Tip (Usage): $cmdname " _________________________________________________________________ 4.5 sunlock 注意 : Korn shell /bin/ksh 在你从Linux CD-ROM 安装 pdksh*.rpm 时就会产 生 请把他存成一般文字档并改变存取权限 chmod a+rx. _________________________________________________________________ #!/bin/ksh # CVS program sunlock # Program to unlock the file to release the lock done by sedit cmdname=`basename $0` Usage() { print " Usage: $cmdname [-r revision_number] " print " The options -r is optional " print "For example - " print " $cmdname -r 1.1 foo.cpp" print " $cmdname foo.cpp " print " " } # 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 ` if [ $# -lt 1 ]; then Usage exit fi hme=` echo $HOME | cut -f1 -d' ' ` if [ "$hme" = "" ]; then print " Error: $HOME is not set!! " exit fi cur_dir=`pwd` #echo $cur_dir len=${#hme} len=$(($len + 2)) #echo $len subdir=` echo $cur_dir | cut -b $len-2000 ` #echo $subdir if [ "$subdir" = "" ]; then fdname=$1 else fdname=$subdir"/"$1 fi # If file is already checked out by another user.... cvs_root=` echo $CVSROOT | cut -f1 -d' ' ` if [ "$cvs_root" = "" ]; then print " Error: $CVSROOT is not set!! " exit fi cldir=$CVSROOT/$subdir/Locks rcsfile=$CVSROOT/$subdir/$1,v #echo $rcsfile if [ ! -e $rcsfile ]; then print " Error: File $1 does not exist in CVS repository!! " exit fi # Get the tip revision number of the file.... # Use tmpfile as the arg cannot be set inside the sub-shell tmpfile=$hme/sedit-lock.tmp m -f $tmpfile 2>/dev/null if [ "$FLAG1" = "" ]; then ( cd $hme cvs log $fdname | head -6 | grep head: | awk '{print $2}' > $tmpfile ) OARG1=`cat $tmpfile` m -f $tmpfile 2>/dev/null fi lockfile=$cldir/$1-$OARG1 #echo lockfile is : $lockfile if [ ! -e $lockfile ]; then print " File $1 revision $OARG1 is NOT locked by anyone" print " " exit fi ans="" while : do print " ***************************************************" print "WARNING: $cmdname will release lock and enable other" print " developers to edit the file. It is advisable" print " to save your changes with scommit command" print "***************************************************" print -n " Are you sure you want to unlock the file ? [n]: " read ans if [ "$ans" = "" -o "$ans" = " " -o "$ans" = "n" -o "$ans" = "N" ]; the n print " Aborting $cmdname ...." exit fi if [ "$ans" = "y" -o "$ans" = "Y" ]; then print " " print "CAUTION: You may lose all the changes made to file!!" print -n "Do you really want to unlock the file ? [n]: " read ans if [ "$ans" = "y" -o "$ans" = "Y" ]; then break else exit fi else print " Wrong entry. Try again..." sleep 1 fi done if [ -e $lockfile ]; then m -f $lockfile print " Done $cmdname" else print " File $1 is NOT locked by anyone" print " " fi
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部