您的位置:軟件測試 > 開源軟件測試 > 開源配置管理工具 > cvs
CVSRCSHOWTO原始程式碼版本控制系統(tǒng)
作者:網(wǎng)絡轉載 發(fā)布時間:[ 2013/2/21 14:22:42 ] 推薦標簽:

4.4 supdate

注意 : Korn shell /bin/ksh 在你從Linux CD-ROM 安裝 pdksh*.rpm 時會產(chǎn)生

請把他存成一般文字檔并改變存取權限 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.supdate_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 時會產(chǎn)生

請把他存成一般文字檔并改變存取權限 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" ]; then
               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
--------------------------------------------------------------------------------

4.6 slist

注意 : Korn shell /bin/ksh 在你從Linux CD-ROM 安裝 pdksh*.rpm 時會產(chǎn)生

請把他存成一般文字檔并改變存取權限 chmod a+rx
--------------------------------------------------------------------------------

#!/bin/ksh

# CVS program slist
# Program to list all edited source files from CVS
#cmdname=`basename $0`

#echo "no of params : " $#
#echo "all args : " $@

recurse_flag=""

if [ "$1" = "" ]; then
        dir=.
        recurse_flag=""
else
        dir=$@
        recurse_flag=" -prune "
fi

FOUT=slist_temporary_file.out

m -f $FOUT

find $dir  $recurse_flag -type f -exec ls -ltr {} ;
| grep -v "/CVS/"
| grep ^-rw
| grep -v .o
| grep -v .log 
| grep -v .out
| grep -v .pit 
| awk '{ if ($NF != "tags") print $0 }'
| awk '{ if ($NF != "a.out") print $0 }'
| awk '{ if ($NF != "core") print $0 }'
| awk '{ print $NF }' > $FOUT

aa=`cat $FOUT`
m -f $FOUT

for ii in $aa ; do
        ftype=" "
        ftype=`file $ii | awk '{print $2 }' `

        # find . -type f -exec file {} ;
        # 1)ELF 2)commands 3)[nt]roff, 4)c 5)English  6)executable
        # 7)ascii 8)current 9)empty
        # Binaries are ELF, lib.a are current
        #
        if [ "$ftype" = "ascii" -o "$ftype" = "commands"
                -o "$ftype" = "[nt]roff," -o "$ftype" = "c" -o "$ftype" = "data"
                -o "$ftype" = "English" -o "$ftype" = "executable" ]; then
                pcfile=` echo $ii | cut -d'.' -f1`
                pcfile=${pcfile}".pc"
                if [ ! -f $pcfile ]; then
                        ls -l $ii
                else
                        if [ "$ii" = "$pcfile" ]; then
                                ls -l $ii
                        fi
                fi
        fi
done;

#| grep -v ^-rwx

#ls -l | grep ^-rw | grep -v .o

#ls -l | grep ^-rw | grep -v .o | awk '{ if ($NF != "tags") print $0 }'
#ls -l | grep ^-rw | grep -v ^-rwx | grep -v .o |  awk '{ if ($NF != "tags") print $0 }' | awk '{ if ($NF != "core") print $0 }'

#print " Done $cmdname. $cmdname successful"
#print " Tip (Usage): $cmdname "
--------------------------------------------------------------------------------

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