首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用不带用户名或密码的svnant

使用不带用户名或密码的svnant
EN

Stack Overflow用户
提问于 2009-05-19 16:48:00
回答 1查看 4.7K关注 0票数 3

我已经使用命令行SVN签出了代码。我有一个想要运行的Ant构建脚本,它将在完成时执行提交。

我想使用svnant,比如

代码语言:javascript
复制
<svn svnkit="false" javahl="false" failonerror="true">
    <commit dir="${dir}" message="${message}"/>
</svn>

但是它不工作,并给出这个错误

代码语言:javascript
复制
[svn] <Commit> started ...
[svn] svn: Commit failed (details follow):
[svn] svn: OPTIONS of 'http://svn.local/path/to/my/proj': authorization failed (http://svn.local)
[svn] <Commit> failed !

但是,如果我直接执行一个exec,就像这样

代码语言:javascript
复制
<exec executable="svn">
    <arg line="commit ${dir} -m '${message}'"/>
</exec>

它会工作得很好。奇怪的是,使用svnkit="false"javahl="false"应该让svnant使用命令行svn。

那么这是怎么回事呢?我不应该在svnant调用中指定用户名/密码,因为命令行svn显然不需要它(它已被缓存)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-05-19 18:00:41

简单、可靠的解决方案是将所需的svn用户名和密码存储在主目录的build.properties文件中,设置权限使其他用户无法读取它,然后将其加载到您的ant脚本中。

我在构建脚本中依赖于身份验证缓存,这很烦人,因为身份验证迟早不会被缓存,或者错误的身份验证将被缓存,而当您试图了解错误的地方时,您将浪费时间。或者,您可能决定在一个不同的环境中运行ant,比如构建服务器,这会使提供svn的身份验证缓存变得困难。最好从一个文件中加载身份验证信息,并编写ant程序,以便在该文件丢失时给出一条清晰的消息。

您还可以尝试使用svnkit命令行客户端缓存您的身份验证,并查看在通过ant使用时是否仍然有效。

这个帖子谈到了同样的问题:http://www.nabble.com/svnant-and-authentication-td17865407.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/883872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档