ChatGPT解决这个技术问题 Extra ChatGPT

SVN 405 方法不允许

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

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

我已经运行了无数次清理、提交、更新等。没有什么能解决这个问题。想法?

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

我在尝试删除子目录时尝试做同样的事情,这样我就可以正确地忽略它。不知何故,它自己解决了,我真的不知道元素的什么神秘组合恰好允许这个,所以我放弃了我的问题。我的新问题是:为什么我们不都使用 git

P
Peter Mortensen

我的猜测是您尝试添加的文件夹已经存在于 SVN 中。您可以通过将文件签出到不同的文件夹来确认,看看trunk是否已经有所需的文件夹。


我确实在另一个签出版本上验证了这一点。为什么我的工作副本不会随之更新,我无法确定。
这里也是这种情况,但是我不得不在一个单独的文件夹中检查该文件夹(或者更确切地说,我将其重命名为“foo”并 svn up'd 并将其取回,包括“已删除”文件夹,尽管我成功提交删除它。)
@Shaji:我理解你的情况。但是由于这个错误,我如何仍然可以承诺?或者有什么事情要做,请告诉我。谢谢。
对文件夹执行 SVN 更新,然后再次尝试提交。
这是一个恼人的错误。我从 Github 签出了一个新的存储库并提交了一个新文件夹。它总是显示相同的错误。尝试了您的解决方案,但它不起作用。
P
Peter Mortensen

我修复它的最快方法是复制受影响的文件夹,并使用替代名称提交它。然后svn mv duplicateFolder originalFolder。相当容易。

所以,取文件夹 1 并制作一个文件夹 1 副本:

svn delete folder1
svn add folder1Copy

提交和更新:

svn mv folder1Copy/ folder1/

再次提交,它是固定的。


这对我来说非常有用,而且比处理第二个工作副本要简单得多。
希望 commit & update 不是文字命令行......在 Unix 中,它会尝试并行执行两者。
非常棒的好先生,如果你来森尼韦尔并以某种方式找到我,我会给你买咖啡。
P
Peter Mortensen

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

如果我删除它,然后运行更新,它不会出现。

cd libaries
svn up

(什么都没发生)。

但用实际名称更新:

svn update fof

成功了,它被更新了。所以我在它上面分解了我的(手动 tar 归档的)工作副本并重新提交。最简单的解决方案。


同意这是最简单的。只需执行“svn up [文件夹]”而不是“svn up”。
这个解决方案对我有用。谢谢你。
P
Peter Mortensen

我刚刚在我自己的存储库中修复了这个问题。我在 Windows 上使用 TortoiseSVN,所以我不确定这在命令行上转换为哪些命令,但这是我所做的:

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

首先我取消了添加,因此SVN不再关注它。

然后我使用 Windows 上下文菜单将它重命名(改名为 libs,这并不重要),添加它并成功提交。

最后,我使用 TortoiseSVN 的上下文菜单将它重命名为 lib(这可能很重要),然后再次提交。


P
Peter Mortensen

刚才我也遇到了这个问题,就这样解决了。所以我把它记录在这里,希望对其他人有用。

设想:

在我提交代码之前,修订版:100(其他人提交代码......修订版增加到 199)我(忘记运行“svn up”,)提交代码,现在我的修订版:200 我运行“svn up”。

发生错误。

解决方案:

$ mv current_copy copy_back # 重命名当前代码副本 $ svn checkout current_copy # 再次检查 $ cp copy_back/ current_copy # 恢复你的修改


P
Peter Mortensen

我有一个类似的问题。我最终从轨道上对其进行了核对,并在此过程中丢失了我的 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"

这是唯一确定的方法。
b
bahrep

如果您使用 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 的东西。

现在会好的。


a
awan.soekamto

我遇到了同样的问题,并且能够通过以下方式解决它:

将文件夹复制到另一个地方。从复制的文件夹中删除 .svn 右键单击原始文件夹并选择 'SVN Checkout' 如果找不到 (3),那么您的情况与我的情况不同。查看 REPO-BROWSER 上的目录是否正确。就我而言,这就是原因。查看将复制文件夹中的文件取回原始目录。犯罪。


K
Kaveesh Kanwal

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


P
Peter Mortensen

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


B
Bronek

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

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


关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅