SVN 405方法不允许

时间:2010-08-30 15:09:58

标签: svn http-status-code-405

我意外删除了SVN中的文件夹并立即将其添加回来。我遇到了这个问题,我的解决方案最终完全从我的本地副本和服务器副本中删除了该文件夹。我可以在任何其他文件或文件夹上进行更新和提交而没有任何问题,但如果我尝试创建具有相同名称,添加和提交的文件夹,则会出现以下错误:

  

svn:服务器发送了意外的返回值(405方法不允许)以响应对'/ svn / www /!svn / wrk / 9de0d765-2203-456c-af16-58e792ec7ac0 / trunk / htdocs / solutions / medical的MKCOL请求“

我已经运行了无数的清理,提交,更新等。没有解决问题的方法。想法?

仅供参考,我没有重命名顶级文件夹的选项。

11 个答案:

答案 0 :(得分:169)

我的猜测是您尝试在SVN中添加已存在的文件夹。您可以通过将文件签出到另一个文件夹来确认,并查看trunk是否已具有所需的文件夹。

答案 1 :(得分:56)

我修复它的最快方法是复制受影响的文件夹,并使用其他名称提交。然后是svn mv duplicateFolder originalFolder。很简单。

因此,请使用folder1并创建folder1Copy:

svn delete folder1
svn add folder1Copy

提交和更新:

svn mv folder1Copy/ folder1/

再次提交并且已修复。

答案 2 :(得分:10)

我的“已消失”文件夹为libraries/fof

如果我删除它,然后运行更新,它就不会显示。

cd libaries
svn up

(没有任何反应)。

但是用实际名称更新:

svn update fof

做了诀窍并且更新了。所以我将我的(手动tar存档)工作副本展开并重新发布。最简单的解决方案。

答案 3 :(得分:3)

我刚刚在自己的存储库中修复了这个问题。我在Windows上使用TortoiseSVN,所以我不确定命令行上的命令到底是什么命令,但这就是我所做的:

有问题的文件夹名为lib,它应该被添加。

  • 首先,我解除了添加,因此SVN不再关注 它。
  • 然后我使用Windows上下文菜单,添加它并成功提交,将其重命名为(libs,而不是重要)。
  • 最后,我使用TortoiseSVN的上下文菜单将其重命名为lib(这可能很重要),并再次提交。

答案 4 :(得分:3)

我刚才也遇到了这个问题并以这种方式解决了。所以我在这里录了它,我希望它对其他人有用。

情景:

  1. 在我提交代码之前,修订版:100
  2. (其他人提交代码......修订版增加到199)
  3. 我(忘了运行“svn up”,)提交代码,现在我的修订版:200
  4. 我跑“svn up”。
  5. 发生了错误。

    解决方案:

    1. $ mv current_copy copy_back#重命名当前代码副本
    2. $ svn checkout current_copy#再次查看
    3. $ cp copy_back / current_copy#恢复修改

答案 5 :(得分:3)

我有类似的问题。我最终从轨道上钻了它,在这个过程中丢失了我的SVN历史。但至少我让那该死的错误消失了。

这可能是执行命令的次优序列,但它应该非常严格地遵循我实际执行的命令序列以使其工作:

cp -rp target ~/other/location/target-20111108
svn rm target --force
cp -rp ~/other/location/target-20111108 target-other-name
cd target-other-name
find . -name .svn -print | xargs rm -rf
cd ..
svn add target-other-name
svn ci -m "Re-re-re-re-re-re-re-re-re-re import target"
svn mv target-other-name target
svn ci -m "Re-re-re-re-re-re-re-re-re-re import target"

答案 6 :(得分:1)

如果您使用code.google.com来托管Subversion存储库。

你知道下面的事情,对吧?

If you plan to make changes, use this command to check out the code as yourself using HTTPS:

# Project members authenticate over HTTPS to allow committing changes.
svn checkout https://.../svn/trunk/ user-...

When prompted, enter your generated googlecode.com password.
Use this command to anonymously check out the latest project source code:

# Non-members may check out a read-only working copy anonymously over HTTP.
svn checkout http://.../svn/trunk/ ...-read-only

您提到的错误确切地说您使用的是Non-members may check out a read-only working copy anonymously over HTTP状态。因此,到目前为止,您无法提交或做任何事情。

您必须使用Project members authenticate over HTTPS to allow committing changes

现在好了。

答案 7 :(得分:0)

当前添加的目录已在存储库中提交。因此,删除存储库中的目录并再次提交相同的目录。

答案 8 :(得分:0)

我遇到了同样的问题,并且可以通过以下方式修复它:

  1. 将文件夹复制到另一个地方。
  2. 从复制的文件夹中删除.svn
  3. 右键单击原始文件夹,然后选择“SVN Checkout”
  4. 如果你找不到(3),那么你的情况与我的不同。
  5. 查看REPO-BROWSER上的目录是否正确。就我而言,这就是原因。
  6. 查看
  7. 将复制文件夹中的文件恢复到原始目录中。
  8. 提交。

答案 9 :(得分:0)

这意味着您尝试在svn上放置的文件夹/文件已经存在。我的建议是,在做任何事情之前,只需右键单击文件夹/文件,然后单击repo-browser。通过这样做,您将能够看到svn上已存在的所有文件/子文件夹等。如果svn上没有所需的文件/文件夹,那么您只需删除(在备份之后)要添加的文件,然后运行更新。

答案 10 :(得分:0)

出现此错误是因为我用新的URL地址替换了以“ /”结尾的URL地址。我的意思是在REPOSITORY表的 .svn 文件夹中的 wc.db 数据库中记录。

当我删除符号“ /”时,错误消失了。