我有一个ant build.xml文件,其中包含以下设置:
<typedef resource="org/tigris/subversion/svnant/svnantlib.xml"
classpathref="svnant.classpath"/>
<svnSetting id="svn.settings" username="${svn.username}" password="${svn.pw}"
javahl="false" svnkit="true" failonerror="true"/>
<target name="commit">
<svn refid="svn.settings">
<commit file="${webcontent}/version.properties"
message="commit version from build.xml by ${user.name}"
/>
</svn>
</target>
运行ant build会生成以下输出:
[svn] Using svnkit
[svn] <Commit> started ...
[svn] commit -m "commit version from build.xml by username" -N C:/path/to/WebContent/version.properties
但它永远不会结束。只是挂在那个声明上。我最终不得不终止构建并清理svn目录,因为WebContent目录被SvnKit设置为锁定
客户端存储库是svn版本1.6,我正在使用svnant版本1.3.1 Ant版本是1.7.1
这有什么用?
为什么它永远不会抛出错误或停止?
SvnKit只有SVN版本1.7 +?
编辑:
所以我把它搞砸了一下。如果我运行构建并且文件没有任何更改,则构建将继续
[svn] <Commit> finished.
但是如果我对文件进行任何编辑并运行构建它就会挂起。
我错过了什么?
答案 0 :(得分:1)
谢谢@ChadNouis, 我终于发现我在加载它们的属性文件之前设置了我的svn用户名和pw。
它被挂起,因为存储库需要用户名/ pw但没有提供。
似乎服务器拒绝或客户端意识到已经超时的事情,但这就是问题。
违规配置:
<typedef resource="org/tigris/subversion/svnant/svnantlib.xml"
classpathref="svnant.classpath"/>
<!-- create svnSetting from properties...that don't exist yet -->
<svnSetting id="svn.settings" username="${svn.username}" password="${svn.pw}"
javahl="false" svnkit="true" failonerror="true"/>
<!-- properties file loaded after svnSetting created...d'oh -->
<property file="svn-credentials.properties"/>
<target name="commit">
<svn refid="svn.settings">
<commit file="${webcontent}/version.properties"
message="commit version from build.xml by ${user.name}"
/>
</svn>
</target>