Can';无法执行提交到svn,因为禁止根文件夹

Can';无法执行提交到svn,因为禁止根文件夹,svn,commit,jenkins,Svn,Commit,Jenkins,我试图在Jenkins中执行post-buildsvn-commit命令 我有权访问http://myrepo.com/myProject …但我没有http://myrepo.com/(禁止访问)。因此,当我提交时,会出现以下错误: svn commit --message "Build #xx" myfile --non-interactive svn: Commit failed (details follow): svn: OPTIONS of 'http://myrepo.com/

我试图在Jenkins中执行post-build
svn-commit
命令

我有权访问
http://myrepo.com/myProject …
但我没有
http://myrepo.com/
(禁止访问)。因此,当我提交时,会出现以下错误:

svn commit --message "Build #xx" myfile --non-interactive

svn: Commit failed (details follow):

svn: OPTIONS of 'http://myrepo.com/myProject/myfile': authorization failed: Could not
authenticate to server: rejected Basic challenge (http://myrepo.com)

从命令行运行svn时,您无权访问 Jenkins中存储的凭据

从命令行使svn工作的最简单方法是提供
--username
--password
参数在构建脚本中转换为svn

您还可以作为Jenkins用户运行svn,并让它存储身份验证 在Jenkins用户的主目录中。您必须设置身份验证 您需要在每个节点上执行提交。这样做很乏味 如果SSL证书或密码定期更改,请进行维护。但确实如此 在构建脚本中保留用户名和密码


也许像这样的插件可以帮助您完成所要完成的任务。

您好。谢谢你的回复。1) 你的方式很好。2) 我不明白为什么它不能只在命令行中工作?(我在windows cmd中尝试了这样的命令,它可以工作(在我通过tortouiseSVN登录之前)。3)您能更详细地描述(或提供有关Jenkins证书的链接)吗?4) 你能解释一下SVN Publisher plugin如何帮助我吗?谢谢你的建议。除了我之前的评论:我们的SVN服务器不支持https连接。它在命令行上为你工作的原因是它在你自己的帐户中运行。当Jenkins运行该命令时,它将作为另一个用户运行,因此您的凭据将不可见。您可以在Windows上使用
runas
命令查看其效果。感谢您的解释。所以,只剩下一个问题。。我怎样才能使它自动化。。。首先,我不想显示我的凭据。。。。第二,我不想在每个项目上复制粘贴它们。。特别是如果他们使用相同的svn-repo@davs,在构建机器上,作为Jenkins用户,您可以运行
svnlshttp://myrepo.com/myProject
(如果svn询问是否应存储密码,请说是)。这将把凭证存储在Jenkins“home”目录中,这样您就不必在每个构建命令中输入凭证。