在Ant中使用cvs add命令来“更新”模块

时间:2013-10-31 10:22:37

标签: eclipse ant cvs

通过eclipse使用ant。我要做的是将文件或子目录添加到存储库中已存在的模块。

问题是我不知道(或不应该)脚本将在先前签出的模块中找到哪种文件或子目录。

Checksout模块 - >修改它(添加文件,子目录) - >将该模块添加到控件版本 - >提交

我正在做这样的方法:

<target name="checkout" >

    <cvs cvsrsh="plink" cvsroot="${cvsroot}" package="${mymodule}" dest="${extract.dir}" command="checkout"/>

</target>


<target name="cvs_add" >

    <cvs cvsrsh="plink" cvsroot="${cvsroot}"  package="${mymodule}" dest="${extract.dir}" command="add -kb"/>

</target>

收到此消息:

[cvs] cvs add: in directory .:
[cvs] cvs [add aborted]: there is no version here; do 'cvs checkout' first

我也尝试过使用ant-contrib的'foreach',以便在文件和子目录之间导航,也无法正常工作。

我喜欢这个问题上的非ant-contrib建议,或者与exec任务无关的东西。但我心胸开阔。

1 个答案:

答案 0 :(得分:0)

我想出了这个解决方案:

    <ac:for param="file">

        <path>
            <fileset dir="${mymodule}">
                <!-- <include name="**/*.jar"/> -->
            </fileset>
        </path>

        <sequential>

            <local name="filename" />
            <basename property="filename" file="@{file}"/>
            <echo message="${filename}"/>
            <cvs cvsrsh="plink" cvsroot="${cvsroot}" dest="${mymodule}" command="add -kb ${filename}"/>

        </sequential>

    </ac:for>   

我终于向ant-contrib投降了。如果有人采取不同的方法,请告诉我。