我是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>
答案 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工作副本。