我是Ant的新手,我想做一个SVN Update操作。我将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>发布于 2011-03-16 22:47:24
您的typedefs是正确的。
您正在尝试做的是更新到一个未由SVN检出的目录。这意味着您的"dir“属性中可能有错误的目录。
如果您的"dir“属性指向项目的根目录,则它很可能是错误的。您可能签出到了项目根目录下的"src“文件夹。
查看项目的根目录(通常位于工作区“根”目录下,与项目同名的目录中)。查找包含".svn“隐藏目录的所有子目录。很可能您只从一个存储库签出,所以如果这是真的,那么您找到的第一个目录很可能就是您打算包含在"dir“指令中的目录。
如果您有多个目录可供选择,请在命令行中输入"svn info“。对于每个候选目录,您很快就能够对它们进行排序。
发布于 2012-05-28 22:22:17
下面是一个简单的解决方案:
要求:
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: 发布于 2011-03-16 22:34:36
我认为如果在dir属性中使用路径分隔符,它应该可以工作:
<svn username="test" password="*****">
<update revision="HEAD" dir="${basedir}/com.project.blackbox.eclipse" />
</svn>update命令应该没有什么特别之处。您只需确保您使用的是正确的目录,并且它必须是svn工作副本。
https://stackoverflow.com/questions/5326731
复制相似问题