SVN Ant更新示例

时间:2011-03-16 14:29:38

标签: svn ant

我是Ant的新手,我想进行SVN更新操作。 我将jar文件添加到ant / lib文件夹中,我也在build.xml文件中添加了typedef属性。

<typedef resource="org/tigris/subversion/svnant/svnantlib.xml" classpath="ant/lib/svnant.jar;ant/lib/svnClientAdapter.jar;ant/lib/svnkit.jar;ant/lib/svnjavahl.jar" />

但是现在我需要一些代码示例来从一个文件夹的存储库进行更新(假设文件夹名称是test) 我查看了互联网,但这个svn ant调用提供了一些示例。

我尝试过这样的事情

<target name="svn-update">
    <svn username="test" password="*****">
        <update revision="HEAD" dir="com.project.blackbox.eclipse" />
    </svn>
</target>

3 个答案:

答案 0 :(得分:2)

这是一个简单的解决方案配偶:

要求:

tortisesvn version - 1.7
subversuin version - 1.7
Ant version - 1.8 

Make sure you checkout with with new version of tortisesvn client. 

<!-- Execute svn update command -->
<target name="fetch-update-code" description="Fetches update code from base/current working repository" >
    <exec executable="svn" dir="D:/opt/trunk" spawn="false">
        <arg value="update" />
        <arg value="--username=${svn.username}" />
        <arg value="--password=${svn.password}" />
    </exec>
</target>


 Hope this helps: 

答案 1 :(得分:1)

你有正确的typedef。

您要做的是更新到SVN未检出的目录。这意味着您的“dir”属性中可能包含错误的目录。

如果您的“dir”属性指向项目的根目录,则可能是错误的。您可能已检查到项目根目录下的“src”文件夹。

查看Project的根目录(通常位于Workspace“root”目录下,与项目同名的目录中)。查找包含“.svn”隐藏目录的所有子目录。赔率是你只从一个存储库中检出,所以如果这是真的,那么你找到的第一个可能就是你想要包含在“dir”指令中的目录。

如果您有多个目录可供选择,请在命令行中输入“svn info”。对于每个候选目录,您很快就可以对它们进行排序。

答案 2 :(得分:0)

我认为如果在dir属性中使用路径分隔符,它应该可以工作:

<svn username="test" password="*****">
    <update revision="HEAD" dir="${basedir}/com.project.blackbox.eclipse" />
</svn>

update命令应该没什么特别之处。您只需要确保使用正确的目录,它必须是一个svn工作副本。