Windows &引用;内存不足-终止应用程序“;执行svn合并时出错

Windows &引用;内存不足-终止应用程序“;执行svn合并时出错,windows,svn,Windows,Svn,在32位Windows XP下尝试使用Subversion 1.6.9执行命令行svn merge时,我们看到以下错误 内存不足-终止应用程序 此应用程序已请求运行时以异常方式终止它。 有关更多信息,请联系应用程序的支持团队 此时检查Windows任务管理器会发现以下内存使用情况 svn.exe进程的峰值内存使用量超过1.8GB 顺便说一句,我们在尝试使用TortoiseSVN执行合并时得到了相同的结果 我们正在尝试从存储库的根级别执行合并。存储库的总文件大小(在开发人员计算机上)约为3GB

在32位Windows XP下尝试使用Subversion 1.6.9执行命令行
svn merge
时,我们看到以下错误

内存不足-终止应用程序

此应用程序已请求运行时以异常方式终止它。 有关更多信息,请联系应用程序的支持团队

此时检查Windows任务管理器会发现以下内存使用情况

svn.exe
进程的峰值内存使用量超过1.8GB

顺便说一句,我们在尝试使用TortoiseSVN执行合并时得到了相同的结果

我们正在尝试从存储库的根级别执行合并。存储库的总文件大小(在开发人员计算机上)约为3GB

这是我们第一次尝试根级合并。我们是否达到内部svn限制

编辑
经过一些尝试和错误调查,我发现这个问题似乎是由存储库中的一个特定文件夹引起的。此文件夹包含1500个SQL脚本。仅在此文件夹上执行合并会导致相同的内存不足错误(尽管需要更长的时间才能恢复)。

您是否在64位windows上运行64位SubVersion版本

如果没有,请记住Windows内存大小的限制。进程的使用限制为3GB,因此这可能是您达到的限制


顺便说一句,最新的TortoiseSVN是1.6.13

,考虑到终止之前您看到的内存使用量(~1.8GB),并且您在32位Windows上,每个进程的内存限制为2GB,我建议尝试在64位机器上进行合并

如果您没有可用的64位计算机,请尝试将其拆分为较小的合并(除非您正在重新整合分支,否则我不确定如何拆分)

我曾经处理过3GB的工作拷贝和大量的合并(总是从分支的根开始)——我从来没有遇到过内存问题,但我也是64位的。可以想象,合并一个有很多更改的分支可能需要大量内存,但我只是猜测

我建议发布到subversion邮件列表,快速搜索告诉我您已经有了:)我怀疑他们会确认,考虑到存储库的大小,您需要更多内存来进行大型合并,但也可能发生了其他事情

单独建议:在邮件列表中搜索类似问题

我找到了一个新的。如果您以前从未从根目录进行过合并,我假设您有很多合并信息

更新:了解svn:mergeinfos是什么很重要。在不理解的情况下小心地移除它们。在Richard的例子中,存储库从来没有从分支的根提交过合并,这意味着svn:mergeinfo在根目录中可能不包含任何内容,因此删除它们将删除svn对以前合并的内容的了解。这在执行完整分支合并时很重要(例如svn merge url/to/src/branch-其中未指定修订),并且可能会导致subversion尝试重新合并以前合并的修订。樱桃形拾取合并(即指定修订版x、y、z)不应受到影响。即使所有分支都被删除了,这也不是世界末日,只是对于在该时间点之前涉及分支的整个分支合并,您将有一个类似于svn 1.4的行为

这就是说,我以前曾多次清理无关的子树合并信息——只是不是从根开始

Mergeinfo建议阅读:


我们能够解决这个问题,尽管我们仍然不了解原因的确切性质

正如在我的后期编辑中所述,我们将问题跟踪到一个包含1500个SQL脚本的文件夹中。此文件夹还具有单个文件的
svn:externals

我们执行了以下步骤:

  • 删除此
    svn:externals
    ,并执行svn提交
  • 已删除文件夹的工作副本(如果删除引用单个文件的svn:externals属性,则在后续的
    svn更新中不会删除文件夹中的外部文件,这似乎是一个问题)
  • 执行了
    svn更新

当我们下一次尝试进行
svn合并时
命令成功完成。

有关详细信息,您是否与应用程序的支持团队联系?坦白地说,这有点像你给我们看一个盒子,让我们告诉你里面是什么——这是一个非常具体的问题,不是很多信息(我并不是说信息是可用的,这就是问题!)我们谈论的内存使用量是多少?@Richard,可能是你从哪里得到软件的,@Joshua:我已经更新了我的
svn.exe
峰值后内存使用量超过了1.8GB;但是,伙计,我们使用的是SVN,正是这个软件定义了“这很简单!”按钮,只是吹嘘合并并成功签入单个文件。我听到的亵渎之词比我听到的要多…我更新了我的帖子本-我们使用的是32位窗口。这个问题似乎是以svn为中心的(而不是TortoiseSVN)。我认为在32位windows中,每个进程的限制是2GB,这与报告的使用率非常接近,可能是这样,但我还想知道,在合并更大的存储库时,svn merge是否会消耗大量RAM。“我还想知道svn merge是否会消耗大量RAM“对不起,我不知道答案。我建议您检查最新版本-如果是内存泄漏,可能会有错误修复。不过,可以通过/3GB引导标志将windows server配置为每个进程允许3GB。谢谢Joshua。关于merginfo Properties的问题你是对的。存储库确实有一个很大的问题