CVS RCS HOWTO 原始程式码版本控制系统 (2)
2008-02-23 07:21:12来源:互联网 阅读 ()
4. Shell Scripts
下面的 scripts 是基本 CVS 命令的集合,而且是 Korn shell 的 scripts 。你可以把他转成 perl 或者 bash。你可以自己修改成你想要的样子。这些只是运用基本 CVS 命令但有些特殊的花样加在里面。例如, sedit 这个 script 提供了档案锁住的功能使得其他人知道有某人正在修改这个档案,当然你也可以直接使用 CVS 命令而不用这些 scripts ,这些 scripts 只是在展示 CVS 是多麽的有弹性。
把这些 scripts 复制到 /usr/local/bin 下,并且此目录应该在你的 PATH 环境变数中。
sget [-r revision_number]
sedit [-r revision_number]
scommit [-r revision_number]
supdate
sunlock [-r revision_number]
slist 要看目前正被你修改的档案列表。做 'ls -l | grep | ...' 命令,请按 slist
sinfo
slog
sdif
sdif -r rev1 -r rev2
注意: sdif 只有一个 'f' ,因为这里已经有一个 unix 命令叫 'sdiff'。
sadd
sdelete
sfreeze
saddtree
例如 :
--------------------------------------------------------------------------------
cd $HOME;
sfreeze REVISION_1_0 srctree
--------------------------------------------------------------------------------
这将会冻结原始码,并贴上一个标签 REVISION_1_0 ,如此一来你就可以稍後用版本名字登出整个目录树。
******************************************************
4.1 sget
注意 : Korn shell /bin/ksh 在你从Linux CD-ROM 安装 pdksh*.rpm 时就会产生
请把他存成一般文字档并改变存取权限 chmod a rx
--------------------------------------------------------------------------------
#!/bin/ksh
# CVS program sget
# Program to check out the file from CVS read-only
cmdname=`basename $0`
Usage()
{
print "\nUsage: $cmdname [-r revision_number/symbolic_tag_name]
print "The options -r are optional "
print "For example - "
print " $cmdname -r 1.1 foo.cpp"
print " $cmdname foo.cpp "
print " $cmdname some_directory "
print "Extract by symbolic revision tag like - "
print " $cmdname -r REVISION_1 some_directory "
print " "
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 1 ]; then
Usage
fi
bkextn=sget_bak
hme=` echo $HOME | cut -f1 -d' ' `
if [ "$hme" = "" ]; then
print "\nError: \$HOME is not set!!\n"
exit
fi
# Check if file already exists....
if [ -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
print "\nError: The file is writable. Aborting $cmdname ......"
print " You should either backup, scommit or delete the file and"
print " try $cmdname again\n"
exit
fi
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
# Move the file
touch $1 2>/dev/null
\mv -f $1 $1.$bkextn
# Create subshell
(
cd $hme
#echo $fdname
# Use -A option to clear all sticky flags
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- CVS RCS HOWTO 原始程式码版本控制系统 (3) 2008-02-23
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash