您的位置:軟件測試 > 開源軟件測試 > 開源配置管理工具 > cvs
CVS-RCS
作者:網絡轉載 發(fā)布時間:[ 2013/1/25 16:19:35 ] 推薦標簽:

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

上一頁12345678910下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd