SVN 405方法不允许
我不小心删除了SVN中的文件夹,并立即将其添加回来。 我遇到了这个问题,我的解决scheme最终从我的本地副本以及服务器副本完全删除文件夹。 我可以做任何其他文件或文件夹没有问题的更新和提交,但如果我尝试创build一个具有相同名称的文件夹,添加和提交,它会给我以下错误:
svn:服务器发送意外返回值(405方法不允许),以响应“/ svn / www /!svn / wrk / 9de0d765-2203-456c-af16-58e792ec7ac0 / trunk / htdocs / solutions / medical”的MKCOL请求
我运行了无数的清理,提交,更新等等。没有什么能够解决这个问题。 想法?
仅供参考,我没有重新命名顶级文件夹的选项。
我的猜测是,你试图添加的文件夹已经存在于SVN中。 您可以通过将文件签出到另一个文件夹来确认是否已经有了所需的文件夹。
解决这个问题的最快捷方式是复制受影响的文件夹,并使用替代名称进行提交。 然后svn mv duplicateFolder originalFolder
。 挺容易。
所以,拿folder1和做一个folder1Copy:
svn delete folder1 svn add folder1Copy
提交和更新:
svn mv folder1Copy/ folder1/
再次提交并修复。
我的“消失”文件夹是libraries/fof
。
如果我删除它,然后运行更新,它不会显示。
cd libaries svn up
(什么都没发生)。
但用实际名称更新:
svn update fof
做的伎俩,它已经更新。 于是我将我的(手动tar归档的)工作副本炸开并重新发送。 最简单的解决scheme
我只是解决这个在我自己的仓库。 我在Windows上使用TortoiseSVN,所以我不确定在命令行上转换的是什么命令,但是这是我做的:
有问题的文件夹被称为lib
,它是由于被添加。
- 首先我解开了添加,这样SVN就不再关注它了。
- 然后,我使用Windows上下文菜单将它重命名为(
libs
,不是那么重要),添加它并成功提交。 - 最后,我使用TortoiseSVN的上下文菜单将其重命名为
lib
(这可能很重要),然后再次提交。
我刚才也遇到了这个问题,并以这种方式解决了这个问题。 所以我把它logging在这里,我希望它对其他人有用。
场景:
- 在我提交代码之前,修订版本是:100
- (其他人提交的代码修改增加到199)
- 我(忘了运行“svn up”)提交代码,现在我的修订版本是:200
- 我运行“svn up”。
发生错误。
解:
- $ mv current_copy copy_back#重命名当前的代码副本
- $ svn checkout current_copy#再次检查出来
- $ cp copy_back / current_copy#恢复你的修改
我有一个类似的问题。 我最终从轨道上运行,在这个过程中失去了我的SVN历史。 但至less我让那个该死的错误消失了。
这可能是一个次优的命令序列,但是它应该非常接近我实际执行的命令的顺序:
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"
如果你使用code.google.com
托pipe你的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
事情。
现在会好起来的。
我遇到了同样的问题,并能够解决它通过:
- 将该文件夹复制到另一个地方。
- 从复制的文件夹中删除.svn
- 右键单击原始文件夹并select“SVN Checkout”
- 如果找不到(3),那么你的情况和我的不同。
- 查看REPO-BROWSER上的目录是否正确。 对我而言,这是事业的原因。
- 查看
- 从复制的文件夹中取回文件到原始目录中。
- 承诺。
这意味着你试图放在svn上的文件夹/文件已经存在了。 我的build议是,在做任何事情之前,只需右键单击文件夹/文件,然后单击回购浏览器。 通过这样做,你将能够看到所有已经存在于svn上的文件/子文件夹等。 如果所需的文件/文件夹不在svn上,那么你只需删除(在备份之后)你想要添加的文件,然后运行更新。
当前添加的目录已经在仓库中提交。 因此,删除存储库中的目录并再次提交相同的目录。