SVNANT 更新单个文件,跳过错误



我想将本地文件夹中的文件内容更新为 svn,请注意该文件存在于 svn 上。

首先,我正在结帐,深度为空。 然后我在脚本上运行更新

<svn refid="svn.settings" logFile="${directory}/checkout_log.log">
<checkout   url="${svn_path}" 
destpath="${full_path}"
revision="HEAD" depth="empty"
/>
<update  recurse="false" revision="HEAD" dir="D:UpdateSVNCheckoutT" file= "test.sql" />
</svn>

但是在日志文件中,它的sayes

Skipped 'test.sql'
Summary of conflicts:
Skipped paths: 1
<Update> finished.

好的,我知道有冲突,但是我该如何svn resolve脚本

为避免冲突,最好先签出,然后修改签出文件,然后尝试签入。如果此操作失败,请删除所有临时文件,然后重试。

整个过程如下所示(使用 Ant Contrib 作为普通 Ant 的扩展(:

<var name="finished" value="false" />
<for list="1,2,3,4,5,5,6,7,8,9,10" param="trynr">
<sequential>
<if>
<equals arg1="${finished}" arg2="false" />
<then>
<echo message="#########################################" />
<echo message="# trynr=@{trynr}" />
<echo message="#########################################" />
<trycatch property="errormsg" reference="exceptionObject">
<try>
<!-- Delete old checked out files -->
<delete .../>
<!-- Check out the file -->
<!-- Modify the file -->
<!-- Commit the file -->
<var name="finished" value="true" />
</try>
<catch>
<echo message="Update failed." />
<echo message="Error message: ${errormsg}" />
<if>
<equals arg1="@{trynr}" arg2="10" />
<then>
<echo message="Giving up after @{trynr} attempts." />
<fail message="Unable to update file. Giving up after @{trynr} attempts." />
</then>
<else>
<echo message="Trying again in 2 seconds ..." />
<sleep seconds="2"/>
</else>
</if>
</catch>
</trycatch>
</then>
<else />
</if>
</sequential>
</for>

相关内容

  • 没有找到相关文章

最新更新