在执行cvs checkout时覆盖现有文件

时间:2013-03-22 07:07:33

标签: ant cvs

我有一个Ant脚本,每次需要部署应用程序时都会执行CVS检查。 执行此操作的理想方法是首先删除现有的本地代码然后执行检出,但似乎我无法删除项目,因为我的构建文件也是其中的一部分。 所以我想做一个结帐,我的现有文件将被存储库中的文件替换。 有没有办法强制cvs checkout会覆盖现有的文件?

我的构建目标看起来像

<target name="deploy.branch" depends="checkPropertyForBranch" if="branchPropertyExist">
        <record name="log.txt" action="start" />
        <echo message="${release.number}" />
        <antcall target="tag.branch" />
        <antcall target="checkout.branch" />
        <antcall target="stopJboss" />
        <antcall target="stopRemoteJboss" />
        <sleep seconds="10" />
        <antcall target="replaceTag" />
        <antcall target="deploy" />
        <antcall target="moveConfigFiles" />
        <antcall target="promote" />
        <parallel>
            <antcall target="startJboss" />
            <antcall target="startRemoteJboss" />
        </parallel>
        <antcall target="waitForWebSite" />
        <antcall target="mailSuccessBranch" />
        <record name="log.txt" action="stop" />
    </target>

,结帐目标就像

 <target name="checkout.branch">
        <tstamp>
            <format property="CHECKOUT" pattern="M/d/yyyy, hh:mm:SS a, z" locale="en" />
        </tstamp>
        <property name="checkout_start" value="${CHECKOUT}" />
        <echo message="CVS checkout of BRANCH: ${branch_tag}" />
        <!--<delete dir="${basedir}"/>-->
        <cvspass cvsroot="cvsroot" password="*****" />
        <cvs cvsroot="cvsroot" command="co -r ${branch_tag} project"dest="${checkout.dir}"  />
    </target>

build.xml出现在project/scripts/build.xml basedir../"project"

的位置

2 个答案:

答案 0 :(得分:2)

我认为比强制cvs checkout更好的方法就是在结账前删除文件。您可以使用<delete/>任务并排除不应删除的文件。试试这个:

<project name="cvs.test">

    <dirname property="base.dir" file="${ant.file.cvs.test}"/>

    <target name="cvs.checkout" depends="clean">
        <!-- here is the checkout -->
    </target>

    <target name="clean">
        <delete dir="${base.dir}">
            <exclude name="build.xml"/>
        </delete>
    </target>

</project>

答案 1 :(得分:0)

将构建脚本检查到项目中,然后您可以删除源项目并结帐。