是什么导致svn错误413请求实体太大?

Jos*_*osh 57 svn

有时我在更新svn存储库时收到错误"413 Request Entity Too Large".收到此错误后,每次尝试更新本地工作副本时都会继续.新的结账将解决问题,但非常不方便.该项目超过30 GB,SVN存储库在外部托管.

过去,这种情况发生在几台不同的计算机上,包括Windows开发机器和我们的Linux构建服务器.

我发现的关于这个问题的大部分内容都与大型个人文件(超过2GB)有关.这不是这种情况,因为最大的文件大约是.50-60 MB.

有没有其他人在此之前遇到此问题和/或知道原因/解决方案?

Iva*_*kov 55

尝试将以下配置指令添加到Apache配置文件中:

LimitXMLRequestBody 8000000
LimitRequestBody 0
Run Code Online (Sandbox Code Playgroud)

  • @FelipeAlvarez:谢谢你的提醒.将LimitRequestBody降低到0或者一些非常大的值(例如100-1000MB)几乎是安全的,但是对于LimitXMLRequestBody来说它具有大或无限(0)值是不安全的,因为它存储在内存中.从我的测试8000000为LimitXMLRequestBody足以满足所有Subversion案例.我会更新我的答案. (3认同)

小智 38

我无法访问我的repo服务器(IT Managed,以及周末).所以我发现我可以通过在子目录上执行svn更新来解决这个问题,直到一个不起作用.然后我下到这个目录,直到我停止得到413错误.然后我可以在更高级别进行更新.可能不适合每个人,但可以帮助在紧急情况下通过

  • 这是一个很好的建议.您可以从顶层开始执行"svn up*" - 如果在子目录上失败,则决定进入并重复.如果你有一个包含大量文件夹的子目录,只需在其上执行"svn up*"即可解决问题. (6认同)
  • 当你发现手动遍历所有目录变得太乏味时:`find -type d | grep -v -e "\.svn" | tac | xargs -d"\n" -n1 svn up` (3认同)

luc*_*ell 6

根据 mdh 的回答,制作了一个简短的 bash 脚本来循环遍历子目录:

for dir in *; do
    [[ -e $dir ]] || continue
    echo "Updating $dir"
    svn up $dir
done
svn up
Run Code Online (Sandbox Code Playgroud)

  • 不知道为什么这被否决了。如果您无法访问服务器,那么这是解决问题的唯一方法。 (2认同)