• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

CVS-RCS(四)

发布: 2007-7-01 23:30 | 作者: admin | 来源: | 查看: 9次 | 进入软件测试论坛讨论

领测软件测试网 4.3 scommit
注意 : Korn shell /bin/ksh 在你从Linux CD-ROM 安装 pdksh*.rpm 时就会产 生

请把他存成一般文字档并改变存取权限 chmod a+rx
_________________________________________________________________
#!/bin/ksh
# CVS program scommit
# Program to commit the changes and check in the file into CVS

cmdname=`basename $0`

Usage()
{
print "\nUsage: $cmdname [-r revision_number] "
print "The options -r are 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 `

#echo FLAG1 = $FLAG1 , OARG1 = $OARG1

if [ $# -lt 1 ]; then
Usage
exit 2
fi

if [ -d $1 ]; then
Usage
exit 2
fi

hme=` echo $HOME | cut -f1 -d@# @# `
if [ "$hme" = "" ]; then
print "\nError: \$HOME is not set!!\n"
exit
fi

# Find sub-directory
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 "\nError: \$CVSROOT is not set!!\n"
exit
fi
cldir=$CVSROOT/$subdir/Locks
mkdir $cldir 2>/dev/null

# Get the working revision number of the file....
# Use tmpfile as the arg cannot be set inside the sub-shell
tmpfile=$hme/sedit-lock.tmp
\rm -f $tmpfile 2>/dev/null
if [ "$FLAG1" = "" ]; then
(
cd $hme
cvs status $fdname 2>/dev/null | grep "Working revision:" | awk @#{print
$3}@# >$tmpfile
)
OARG1=`cat $tmpfile`
\rm -f $tmpfile 2>/dev/null
fi

if [ "$OARG1" = "" ]; then
print "The file $fdname is NEW, it is not in the CVS repository"
else
lockfile=$cldir/$1-$OARG1
if [ -e $lockfile ]; then
# Check if this revision is owned by you...
aa=` ls -l $lockfile | awk @#{print $3}@# `
userid=`id | cut -d@#(@# -f2 | cut -d@#)@# -f1 `
if [ "$aa" != "$userid" ]; then
print " "
print "The file $fdname is NOT locked by you!!"
print "It is locked by unix user name $aa and your logi
n name is $userid"
# print "If you are working concurrently with other devel
oper"
# print "and you used -F option with sedit."
print "You need to wait untill other developer does sco
mmit"
print "or sunlock"
print "Aborting the $cmdname ...."
print " "
exit 2
fi
else
if [ -f $CVSROOT/$subdir/$1,v ]; then
print "You did not lock the file $fdname with sedit!!"
print "Aborting the $cmdname ...."
exit 2
else
print "\nThe file $fdname does not exist in CVS reposit
ory yet!!"
print "You should have done sadd on $fdname ...."
fi
fi
fi

if [ -d $1 ]; then
Usage
exit 2
# Do not allow directory commits for now ...
#cvs commit
else
cvs commit $1
exit_status=$?
fi

if [ $exit_status -eq 0 ]; then
print "\nDone $cmdname. $cmdname successful"
#print "\nTip (Usage): $cmdname \n"
fi

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网