庞大资源库的计算机教程网站!
设为首页
加入收藏
总编信箱
投稿或申请专栏请先 [登 陆]
首页 操作系统 程序设计 图形图像 媒体动画 机械电子 WEB开发 数 据 库 办公系列 路由技术 网络原理 网络应用
认证考试 安全技术
首页>操作系统>Linux>软件使用>正文
资料搜索
Google搜索
Google
返回上级列表

推荐文章

快速保存网页中所有图片的方法
Windows中让光驱巧妙“隐身”技
防范非法用户入侵Win 2000/XP系
两款比较典型的ASP木马防范方法
有关表格边框的css语法整理
Windows XP中可以被禁用的服务
SQL Server导出导入数据方法
Javascript所有对象的属性的获
网页(HTML)中的特殊字符
与篮球共舞,尽显模式本色
QQ病毒的手工清除方法
Photoshop为极品美女打造性感睫
天衣无缝:IIS与PHP水火也相容
SQL Server存储过程编写和优化

CVS-RCS(五)

 作者:本站收集   日期:2005-3-13
字号选择〖 〗/ 双击滚屏 单击停止   
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 "\nUsage: $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 "\n$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 "\nWarning : 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 "\nDirectory 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 "\nDone $cmdname. $cmdname successful"
#print "\nTip (Usage): $cmdname \n"
_________________________________________________________________

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 "\nUsage: $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 "\nError: \$HOME is not set!!\n"
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 "\nError: \$CVSROOT is not set!!\n"
exit
fi
cldir=$CVSROOT/$subdir/Locks
rcsfile=$CVSROOT/$subdir/$1,v
#echo $rcsfile

if [ ! -e $rcsfile ]; then
print "\nError: File $1 does not exist in CVS repository!!\n"
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
\rm -f $tmpfile 2>/dev/null
if [ "$FLAG1" = "" ]; then
(
cd $hme
cvs log $fdname | head -6 | grep head: | awk '{print $2}' > $tmpfile
)
OARG1=`cat $tmpfile`
\rm -f $tmpfile 2>/dev/null
fi

lockfile=$cldir/$1-$OARG1
#echo lockfile is : $lockfile
if [ ! -e $lockfile ]; then
print "\nFile $1 revision $OARG1 is NOT locked by anyone"
print " "
exit
fi

ans=""
while :
do
print "\n\n***************************************************"
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 "\nAre you sure you want to unlock the file ? [n]: "
read ans
if [ "$ans" = "" -o "$ans" = " " -o "$ans" = "n" -o "$ans" = "N" ]; the
n
print "\nAborting $cmdname ...."
exit
fi
if [ "$ans" = "y" -o "$ans" = "Y" ]; then
print "\n\n\n\n\n "
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 "\n\nWrong entry. Try again..."
sleep 1
fi
done

if [ -e $lockfile ]; then
\rm -f $lockfile
print "\nDone $cmdname"
else
print "\nFile $1 is NOT locked by anyone"
print " "
fi
上一篇:Linux环境下邮件服务器软件的分析比较(一)    下一篇:CVS-RCS(四)  
[发送给好友]  [关闭窗口]  [返回顶部]   转载请注明来源:www.it00.com   
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 原点 投稿作者: 本站收集
信息来源: 网络 录入时间: 2005-3-13
关于我们 - 广告服务 - 版权申明 - 网站地图 - 联系方式 - 总编信箱 - 会员投稿