智圆行方
编程道路上的点点滴滴

关于这个问题现在已经有几种解决办法了。SvnAnt: http://subclipse.tigris.org/svnant.html,我在日常的build中用的便是这种方法,但我并不喜欢这种方法,因为他需要依赖本地库。

其实只是一个很简单的任务:获取当前working copy的top svn revision,在已经安装了xmltask(http://www.oopsconsultancy.com/software/xmltask/)的前提下,只用一小段Ant脚本便可以完成这个任务:

 1 <project name="GetSVNHeadRevision"> 
 2 
 3 <taskdef name="xmltask"    classname="com.oopsconsultancy.xmltask.ant.XmlTask"/> 
 4 
 5 <property name="workingCopy" location="." /> 
 6 
 7 <target name="default"> 
 8     <exec dir="${workingCopy}" executable="svn"> 
 9         <arg line="up" /> 
10     </exec> 
11     <exec dir="${workingCopy}" executable="svn"  output="svninfo.xml"> 
12         <arg line="info --xml ${workingCopy}" /> 
13     </exec> 
14     <xmltask source="svninfo.xml"> 
15         <copy path="/info/entry/@revision" property="svn.head.rev" /> 
16     </xmltask> 
17 </target> 
18 </project>

通过antcall执行后,top revision会被保存在"svn.head.rev"属性中。

附注:这边还有一个解决方法:http://code.google.com/p/svntask/,大同小异了其实。

posted on 2014-07-24 08:40  智圆行方  阅读(490)  评论(0)    收藏  举报