目前我正在这样做:
<delete dir="${RSA.dir}/file1" />
<copy todir="${RSA.dir}/file1" >
<fileset dir="${CLEARCASE.dir}/file1" />
</copy>
并为其他文件重复同样的事情 - 但这需要很长时间。
我只想删除和复制已更新的文件,其修改日期晚于RSA中的明确日期。
我该怎么做?
答案 0 :(得分:5)
查看sync任务。
如果你想根据文件内容进行操作,并忽略时间戳,我认为这个宏会这样做:
<macrodef name="mirror" description="Copy files only if different; remove files that do not exist in dir. This works similiar to robocopy /MIR." >
<attribute name="dir"/>
<attribute name="todir"/>
<sequential>
<copy overwrite="true" todir="@{todir}">
<fileset dir="@{dir}">
<different targetdir="${todir}"/>
</fileset>
</copy>
<delete includeemptydirs="true">
<fileset dir="@todir}">
<present targetdir="${dir}" present="srconly"/>
</fileset>
</delete>
</sequential>
</macrodef>
答案 1 :(得分:4)
您需要在FileSet上使用selector。像这样:
<fileset dir="${your.working.dir}/src/main" includes="**/*.java">
<different targetdir="${clean.clearcase.checkout}/src/main"
ignoreFileTimes="false"
ignoreContents="true" />
</fileset>
将您的工作目录与您在其他地方的清理结帐进行比较,并返回上次修改时间已更改的文件。您可以将文件集用作<delete>
或<copy>
。