情景:
我需要一个可以执行以下操作的ANT构建脚本:
步骤#4是我遇到问题的地方。我相信我可以通过从已经从SVN repo#2检出的工作副本复制SVN repo#1的编译/导出代码库来完成4a和4b。我不知道如何做两个代码库之间的差异来确定哪些文件需要从SVN repo#2工作副本中删除。我知道我可以使用SVNANT delete删除文件,但是如何构建文件集?
答案 0 :(得分:1)
我做了类似的任务。在我看来,蚂蚁代码看起来像这样:
...
<svn.sync to="${svn_folder}" from="${deploy_directory_path}" />
...
<svn svnkit="true" javahl="false">
<add dir="${svn_folder}" force="true" recurse="true" />
<!--add>
<svnFileSet dir="${svn_folder}">
<svnUnversioned/>
</svnFileSet>
</add-->
<delete>
<svnFileSet dir="${svn_folder}">
<svnMissing/>
</svnFileSet>
</delete>
</svn>
<svn verbose="true" username="${svn.username}" password="${svn.password}" svnkit="true">
<commit dir="${svn_folder}" message="${version}"/>
</svn>
其中
<macrodef name="svn.sync">
<attribute name="to" />
<attribute name="from" />
<sequential>
<mkdir dir="@{to}" />
<sync todir="@{to}" includeemptydirs="true">
<fileset dir="@{from}" />
<fileset dir="@{to}" defaultexcludes="no">
<include name="**/.svn/**/*" />
<include name="**/.svn/**/*.*" />
</fileset>
</sync>
</sequential>
</macrodef>