生成属于特定cvs-tag的文件列表(带修订版)

时间:2010-01-08 07:47:37

标签: cvs

有没有办法生成属于具有修订版的特定cvs-tag的文件列表。

例如projectname_a包含以下文件      - file_1 rev 1.1      - 文件2 rev 1.40     ...

3 个答案:

答案 0 :(得分:0)

最简单的解决方案是在某个地方使用此标签进行结帐。但是需要一点磁盘空间。如果这让您感到困扰,请尝试使用-p选项获得的内容。如果此输出包含文件名,则只需将其过滤掉。

答案 1 :(得分:0)

列表会比你想要的更冗长,但你可以这样做:

cvs log -S -N -r projectname_a

或可能(如果您没有签出项目):

cvs rlog -S -N -r projectname_a ModuleName

(如果要扫描整个存储库,可以使用“。”(无引号)作为模块名称)

如果您只想要没有修订信息的文件名,请添加-R

答案 2 :(得分:0)

无需检查任何内容 - 您可以使用rls命令(远程列表)。它会以一种稍微有趣的方式为您提供信息,但它可以直接处理。

cvs rls <MODULE> -r <TAG> -eR

这是我的脚本片段:

for NAME in `cvs rls ${MODULE} -r ${TAG} -eR  | grep -v ^$  | grep -v ^D | sed 's/ /~~/g'`
do

    FIRST_CHARACTER=`echo $NAME | cut -c1,1`
    if [ ${FIRST_CHARACTER} = "/" ] 
    then
        # This is a file
        FILE_NAME=`echo $NAME | awk -F/ '{print $2}'`
        VERSION=`echo $NAME | awk -F/ '{print $3}'`

        echo "${DIR_NAME}/${FILE_NAME},*${VERSION}*"

    else
        # This is a dir
        DIR_NAME=`echo $NAME | awk -F: '{print $1}'`
    fi
done