1

アプリケーションをデプロイする必要があるたびに CVS-checkout を実行する Ant スクリプトがあります。これを行う理想的な方法は、最初に既存のローカル コードを削除してからチェックアウトすることですが、ビルド ファイルもプロジェクトの一部であるため、プロジェクトを削除できないようです。したがって、既存のファイルがリポジトリ内のファイルに置き換えられるチェックアウトを実行したいと考えています。既存のファイルを上書きする cvs チェックアウトを強制する方法はありますか?

私のビルドターゲットは次のようになります

<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"

4

2 に答える 2

2

cvs チェックアウトを強制するよりも、チェックアウト前にファイルを削除する方がよいと思います。タスクを使用<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>
于 2013-03-22T07:12:20.503 に答える
0

ビルド スクリプトをプロジェクトにチェックインすると、ソース プロジェクトを削除してチェックアウトできます。

于 2013-03-22T07:11:36.663 に答える