svn: E170001报错的原因以及解决方案

本文介绍了在使用Jenkins配置SVN过程中遇到的svn:E170001权限错误问题,并提供了详细的错误日志及原因分析。文章还分享了解决方案,包括清理Windows和Linux客户端的缓存数据。
1. 什么问题What?

使用Jenkins配置的svn拉取项目,Jenkins报错:svn: E170001,经过查阅资源,该问题是由于svn的账户名和密码没有权限。重新换一个有权限的Svn账号,还是出现此问题。具体问题如下:

Started by user xxx(xxx)
Building in workspace /home/working/.jenkins/xxx/test_auto
Checking out a fresh workspace because there's no workspace at /home/working/.jenkins/xxx/test_auto
Cleaning local Directory .
Checking out http://x.x.x.x/svn/testteam/03_automated_testing at revision '2015-12-18T17:35:30.373 +0800'
ERROR: Failed to check out http://x.x.x.x/svn/testteam/03_automated_testing
org.tmatesoft.svn.core.SVNException: svn: E175002: OPTIONS /svn/testteam/03_automated_testing failed
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:388)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:373)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:361)
    at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.performHttpRequest(DAVConnection.java:707)
    at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.exchangeCapabilities(DAVConnection.java:627)
    at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.open(DAVConnection.java:102)
    at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.openConnection(DAVRepository.java:1020)
    at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.getLatestRevision(DAVRepository.java:180)
    at org.tmatesoft.svn.core.internal.wc16.SVNBasicDelegate.getRevisionNumber(SVNBasicDelegate.java:480)
    at org.tmatesoft.svn.core.internal.wc16.SVNBasicDelegate.getLocations(SVNBasicDelegate.java:833)
    at org.tmatesoft.svn.core.internal.wc16.SVNBasicDelegate.createRepository(SVNBasicDelegate.java:527)
    at org.tmatesoft.svn.core.internal.wc16.SVNUpdateClient16.doCheckout(SVNUpdateClient16.java:875)
    at org.tmatesoft.svn.core.internal.wc2.old.SvnOldCheckout.run(SvnOldCheckout.java:19)
    at org.tmatesoft.svn.core.internal.wc2.old.SvnOldCheckout.run(SvnOldCheckout.java:8)
    at org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(SvnOperationRunner.java:20)
    at org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperationFactory.java:1238)
    at org.tmatesoft.svn.core.wc2.SvnOperation.run(SvnOperation.java:294)
    at org.tmatesoft.svn.core.wc.SVNUpdateClient.doCheckout(SVNUpdateClient.java:777)
    at hudson.scm.subversion.CheckoutUpdater$1.perform(CheckoutUpdater.java:99)
    at hudson.scm.subversion.WorkspaceUpdater$UpdateTask.delegateTo(WorkspaceUpdater.java:161)
    at hudson.scm.subversion.WorkspaceUpdater$UpdateTask.delegateTo(WorkspaceUpdater.java:169)
    at hudson.scm.subversion.UpdateUpdater$TaskImpl.perform(UpdateUpdater.java:133)
    at hudson.scm.subversion.WorkspaceUpdater$UpdateTask.delegateTo(WorkspaceUpdater.java:161)
    at hudson.scm.SubversionSCM$CheckOutTask.perform(SubversionSCM.java:908)
    at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:889)
    at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:872)
    at hudson.FilePath.act(FilePath.java:991)
    at hudson.FilePath.act(FilePath.java:969)
    at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:848)
    at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:786)
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1282)
    at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:610)
    at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:532)
    at hudson.model.Run.execute(Run.java:1741)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:98)
    at hudson.model.Executor.run(Executor.java:381)
Caused by: svn: E175002: OPTIONS /svn/testteam/03_automated_testing failed
    at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:208)
    at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:154)
    at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:97)
    ... 38 more
Caused by: org.tmatesoft.svn.core.SVNAuthenticationException: svn: E170001: OPTIONS request failed on '/svn/testteam/03_automated_testing'
svn: E170001: OPTIONS of '/svn/testteam/03_automated_testing': 403 Forbidden (http://x.x.x.x)
    at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:62)
    at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:51)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection._request(HTTPConnection.java:771)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:382)
    ... 37 more
Caused by: svn: E170001: OPTIONS of '/svn/testteam/03_automated_testing': 403 Forbidden (http://x.x.x.x)
    at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:208)
    at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:189)
    at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:141)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPRequest.createDefaultErrorMessage(HTTPRequest.java:455)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPRequest.dispatch(HTTPRequest.java:191)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection._request(HTTPConnection.java:480)
    ... 38 more
java.io.IOException: Failed to check out http://x.x.x.x/svn/testteam/03_automated_testing
    at hudson.scm.subversion.CheckoutUpdater$1.perform(CheckoutUpdater.java:110)
    at hudson.scm.subversion.WorkspaceUpdater$UpdateTask.delegateTo(WorkspaceUpdater.java:161)
    at hudson.scm.subversion.WorkspaceUpdater$UpdateTask.delegateTo(WorkspaceUpdater.java:169)
    at hudson.scm.subversion.UpdateUpdater$TaskImpl.perform(UpdateUpdater.java:133)
    at hudson.scm.subversion.WorkspaceUpdater$UpdateTask.delegateTo(WorkspaceUpdater.java:161)
    at hudson.scm.SubversionSCM$CheckOutTask.perform(SubversionSCM.java:908)
    at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:889)
    at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:872)
    at hudson.FilePath.act(FilePath.java:991)
    at hudson.FilePath.act(FilePath.java:969)
    at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:848)
    at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:786)
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1282)
    at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:610)
    at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:532)
    at hudson.model.Run.execute(Run.java:1741)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:98)
    at hudson.model.Executor.run(Executor.java:381)
Caused by: org.tmatesoft.svn.core.SVNException: svn: E175002: OPTIONS /svn/testteam/03_automated_testing failed
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:388)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:373)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:361)
    at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.performHttpRequest(DAVConnection.java:707)
    at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.exchangeCapabilities(DAVConnection.java:627)
    at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.open(DAVConnection.java:102)
    at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.openConnection(DAVRepository.java:1020)
    at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.getLatestRevision(DAVRepository.java:180)
    at org.tmatesoft.svn.core.internal.wc16.SVNBasicDelegate.getRevisionNumber(SVNBasicDelegate.java:480)
    at org.tmatesoft.svn.core.internal.wc16.SVNBasicDelegate.getLocations(SVNBasicDelegate.java:833)
    at org.tmatesoft.svn.core.internal.wc16.SVNBasicDelegate.createRepository(SVNBasicDelegate.java:527)
    at org.tmatesoft.svn.core.internal.wc16.SVNUpdateClient16.doCheckout(SVNUpdateClient16.java:875)
    at org.tmatesoft.svn.core.internal.wc2.old.SvnOldCheckout.run(SvnOldCheckout.java:19)
    at org.tmatesoft.svn.core.internal.wc2.old.SvnOldCheckout.run(SvnOldCheckout.java:8)
    at org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(SvnOperationRunner.java:20)
    at org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperationFactory.java:1238)
    at org.tmatesoft.svn.core.wc2.SvnOperation.run(SvnOperation.java:294)
    at org.tmatesoft.svn.core.wc.SVNUpdateClient.doCheckout(SVNUpdateClient.java:777)
    at hudson.scm.subversion.CheckoutUpdater$1.perform(CheckoutUpdater.java:99)
    ... 19 more
Caused by: svn: E175002: OPTIONS /svn/testteam/03_automated_testing failed
    at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:208)
    at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:154)
    at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:97)
    ... 38 more
Caused by: org.tmatesoft.svn.core.SVNAuthenticationException: svn: E170001: OPTIONS request failed on '/svn/testteam/03_automated_testing'
svn: E170001: OPTIONS of '/svn/testteam/03_automated_testing': 403 Forbidden (http://x.x.x.x)
    at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:62)
    at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:51)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection._request(HTTPConnection.java:771)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:382)
    ... 37 more
Caused by: svn: E170001: OPTIONS of '/svn/testteam/03_automated_testing': 403 Forbidden (http://x.x.x.x)
    at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:208)
    at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:189)
    at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:141)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPRequest.createDefaultErrorMessage(HTTPRequest.java:455)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPRequest.dispatch(HTTPRequest.java:191)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection._request(HTTPConnection.java:480)
    ... 38 more
Finished: FAILURE
2. 为什么出现此问题?

重新用一个有权限的Svn账户拉取项目,为什么出现此问题,其中的原因是svn客户端本地有缓存。虽然重新用有权限的svn账户,但是svn登录时,还是用的本地存在没有权限的svn账户。

3. 解决办法

win客户端(清除本地缓存) 
【TortoiseSvn】—–》【setings】—-》【saved Data】——-》点击Authentication的【Clean】按钮 
这里写图片描述
这里写图片描述

linux客户端(清除本地缓存) 
方法一: 
linux下删除~/.subversion/auth即可清除之前的用户名和密码:rm -rf ~/.subversion/auth

以后再操作svn会提示你输入用户名,这时就可以使用新的了

方法二: 
svn操作时带上–username参数,比如svn –username=smile co svn_path local_path

4. 总结

日志错误看清楚很重要!!!!

### 问题分析 在使用 SVN 时,用户尝试通过 `svn add .` 命令批量添加所有新增文件,但遇到了错误提示:`svn: E200009: 因为一些目标已经版本化,所以不能增加全部目标`。这个错误通常发生在当前目录中已经包含部分版本化文件的情况下,SVN 不允许对整个目录执行 `add` 操作[^1]。 ### 解决方案 为了解决该问题,可以通过以下命令精确地将所有未被版本控制的文件添加到 SVN 中: ```bash svn st | grep '^\?' | tr '^\?' ' ' | sed 's/[ ]*//' | sed 's/[ ]/\\ /g' | xargs svn add ``` 该命令的工作流程如下: - `svn st`:获取当前目录及其子目录中所有文件的状态信息,每行对应一个文件。 - `grep '^\?'`:筛选出以问号开头的行,这些行代表尚未加入版本控制的新文件。 - `tr '^\?' ' '`:将问号替换为空格,以便后续处理。 - `sed 's/[ ]*//'`:移除每行开头的多余空格。 - `sed 's/[ ]/\\ /g'`:将文件名中的空格替换为转义字符,防止文件名中包含空格导致命令执行失败。 - `xargs svn add`:将处理后的文件名逐个传入 `svn add` 命令进行添加操作[^1]。 此外,也可以使用另一种更为简洁的命令: ```bash svn st | awk '{if ( $1 == "?") { print $2}}' | xargs svn add ``` 该命令通过 `awk` 提取状态为 `?` 的文件名,并将其传递给 `xargs svn add`,同样可以实现批量添加未加入版本控制的文件。 ### 注意事项 - 使用 `svn add .` 命令时,如果当前目录中存在已经被版本控制的文件,SVN 会拒绝添加整个目录,从而引发 `E200009` 错误。因此,应避免直接使用 `svn add .` 来添加所有文件。 - 如果文件名中包含空格或特殊字符,应确保命令中已进行适当的转义处理,以防止命令执行失败。 - 上述命令适用于 Unix/Linux 系统,若在 Windows 环境下使用,需确保已安装 SVN 客户端,并将相关路径添加到系统环境变量中[^3]。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值