【问题标题】:Eclipse: "Update SVN cache" hangs and locks upEclipse:“更新 SVN 缓存”挂起并锁定
【发布时间】:2012-06-18 15:52:35
【问题描述】:

每次我启动 Eclipse 时,程序都会开始执行“更新 SVN 缓存”的操作,但它会永远处于 0% 状态。在此操作完成之前(永远不会发生),我无法执行任何操作(例如检查我的项目、构建它们,甚至运行它们)。此外,每当我尝试在编辑器中输入任何内容时,整个程序都会冻结,我必须终止该进程。

我几天来一直在谷歌上搜索这个问题的答案,但还没有找到答案。有没有其他人遇到过类似的问题并找到了解决方案?

我想补充一点,我已经尝试从头开始重新安装 eclipse、它的所有插件和 jdk。似乎没有任何效果。

【问题讨论】:

  • 是的,这不完全取决于我
  • 您知道您可以告诉 Git 为您与 SVN 对话吗?所以你可以自己使用 Git 并且看起来仍然在使用 SVN?
  • 嗯。我似乎已经修复了它。我更新到最新版本的 Subclipse 并且不再遇到问题。
  • 我的临时解决办法是暂时不安装Subclipse,使用TortoiseSVN。

标签: java eclipse svn subclipse subversive


【解决方案1】:

我遇到了同样的问题,我试图通过禁用 Eclipse 中 SVN 的大部分性能设置来摆脱这个问题:

  • Windows > 首选项 > 团队 > SVN > 性能

或(对于最新版本):Windows > Preferences > 版本控制(团队) > SVN > Performance

  • 禁用:计算深度传出状态、缓存、持久 SSH

【讨论】:

  • 在 Kepler 你可以在 Team> SVN> Label Decorations 菜单中找到它。没有“性能”菜单。
  • @nanospeck 我对 Elicpse Oxygen 也有同样的问题,缺少 Performance 菜单
  • 团队下会有两个 SVN 或者你没有使用正确的 svn 插件
【解决方案2】:

我刚刚遇到了这个问题并且能够挽救它。这是位于 Juno 上的 Zend Studio 10.5。我的工作区中有大约五个项目,其中一个是打开的。我无法关闭该项目,因为它正在等待“更新 SVN 缓存”完成。

  • 关闭 Eclipse 后,我转到打开的项目并通过命令行运行“svn cleanup”。
  • 在workspace/.metadata/.plugins/org.eclipse.team.svn.core,我有一堆临时目录。我创建了一个备份 tarball,然后将它们全部删除。

这并没有解决任何问题。最后我尝试了这个:

  1. 关闭 Eclipse 后,我转到我的项目目录并将 .project 重命名为 project.xml。
  2. 重新打开 Eclipse,项目已关闭。没有 SVN 更新消息。
  3. 重新启动 Eclipse。
  4. 打开了项目,但 Eclipse 对丢失的 .project 文件犹豫不决。
  5. 关闭 Eclipse。
  6. 进入我的项目目录并将 project.xml 重命名回 .project。
  7. 重新启动 Eclipse。
  8. 打开了项目。一帆风顺。只是能够毫无意外地提交更改。

到目前为止,我的 workspace/.metadata/.plugins/org.eclipse.team.svn.core 目录还是空的。

我不知道我尝试的前两件事是否有帮助,或者只是重命名 .project 文件以强制关闭项目就可以了。下次发生(并且会有下一次)我会尝试强制关闭项目并报告。

【讨论】:

  • 只是 svn cleanup 为我解决了问题。只需在根项目目录中运行它。谢谢!
【解决方案3】:

在我的情况下,我意识到与龟 SVN 资源管理器相关的窗口在某处打开。它可能锁定了缓存,而eclipse正在等待解锁。

不是对问题的直接答案,但这可能对犯类似错误的人有所帮助。

【讨论】:

    【解决方案4】:

    您不是唯一一个(请参阅this bug reportthis forum thread),但这可能不是 Eclipse 本身的错误。下一步:

    1. 获取线程转储以查看这是死锁还是线程正在等待从未发生过的事情(在错误报告中,它挂在 System.loadLibrary() 中)。你可以使用jconsole,它是SDK自带的。

    2. 使用另一个 SVN 工具(命令行 svn 或 TurtoiseSVN,如果您在 Windows 上)检查您工作区中所有打开的项目(使用 SVN),以确保数据结构没有损坏。

    3. 获取最新版本的 Eclipse 和/或 SVN 插件

    4. 尝试不同的连接器。有些人使用 JNI 解决方案 javahl 效果更好,有些人使用纯 Java 解决方案 SVNKit

    【讨论】:

      【解决方案5】:
      1. Windows > 首选项 > 团队 > SVN > 性能
        • 禁用:计算深度传出状态、缓存、持久 SSH
      2. 转到首选项 -> 常规
        • 启用:始终在后台运行
        • 启用:显示堆状态
        • 工作台保存间隔(分钟):9999
        • 这将显示您在 eclipse 中的内存使用情况。
      3. 然后编辑 eclipse.ini 文件并将 Xms 和 Xmx 值更改为: -launcher.XXMaxPermSize 512m -Xms1024m -Xmx1024m

      【讨论】:

      • 一些解释为什么应该这样做或解决问题会很好。
      • 第一组更改:禁用 SVN 缓存可防止在 Eclipse 外部工作时锁定 SVN 数据库,同时在其中进行编辑(这很常见。)它还可以防止 Eclipse 在扫描检测到的更改时陷入困境文件系统。
      • 第二组更改生成并扫描,因为它们被分叉到后台时会中断您的工作。我不会将我的工作台保存间隔设置为 9999(可能只有 60 分钟),但我肯定会将其增加到 5 以上,因为它非常具有破坏性。
      • 在第二组更改中,当您启用显示堆状态时,您可以看到 jvm 内存的去向以及何时变低(它有助于解释何时以及是什么让 Eclipse 爬行.)
      • 最后一组更改取决于您有多少可用内存以及您正在运行的其他内容。但是对于开发来说,这似乎是一组很好的值(在许多可能的值中)。
      【解决方案6】:

      我在工作区中有两次相同的项目时遇到了这个问题。确保您在工作区中只有一个副本,也许它会有所帮助。

      【讨论】:

        【解决方案7】:

        可能是eclipse内存问题。在执行以下步骤之前,我遇到了类似的问题:

        • 转到 Preference -> General 并输入以下值:

        这将显示您在 eclipse 中的内存使用情况。

        • 然后编辑您的 eclipse.ini 文件并将 Xms 和 Xmx 值更改为:

        -Xms1024m

        -Xmx1024m

        查看内存状态。希望它会有所帮助。

        【讨论】:

          【解决方案8】:

          我也遇到了类似的问题,我通过取消选中 Windows->Preferences->Team->SVN->Label Decorations 下的“计算文件夹的深层传出状态”解决了这个问题

          【讨论】:

            【解决方案9】:

            我在 Eclipse 中发现了一个索引错误,它阻塞了 svn。另一个项目资源和 svn repo 位于 .metadata.plugins\org.eclipse.core.resources.projects\ProjectName\4.tree 和其他资源。

            svn cleanup with the previous answer with 'Team > SVN > Performance' 不能解决我的问题。

            'eclipse.exe -clean' 会使 eclipse 对 100% cpu 不负责任。

            唯一的解决方案是在退出 eclipse 之后手动删除 org.eclipse.core.resources.projects* 文件。

            【讨论】:

              【解决方案10】:

              这个主题帮助我解决了关于我的 eclipse svn 更新块的问题。

              我在这个案例出现的地方使用 eclipse mars。

              1. 首先我删除了两个我不需要的项目 - 以减少工作区中的项目数量。
              2. 在 eclipse.ini 中更改参数也没有帮助。
              3. 我的 Eclipse 集上有 -clean 参数,所以我也删除了它,希望它能更好地工作。它有点帮助,所以 eclispe 运行的时间更长,但不多。 rockfarkas 在这里提示。
              4. 最后真正有帮助的是从项目视图中快速标记所有项目 CtrlA 并在 SVN 缓存仍在运行时通过上下文菜单关闭它们.他们中的一半做了其他人做不到的,但在那之后我可以看到 SVN 缓存正在改变它的状态,所以我可以再次工作。接下来就是关闭剩下的项目,一个一个地打开。为了这个想法,我阅读了user3096856 的帖子。

              【讨论】:

                【解决方案11】:

                我解决了这个问题:

                -选择您的工作区(在eclipse中)上的项目(或所有项目),右键单击,从菜单中选择Team > Cleanup

                【讨论】:

                  【解决方案12】:

                  就我而言,在 30 多分钟内,它显示只有 0% 已完成。我耐心等待,因为我尝试重新启动 eclipse/machine 仍然得到同样的结果。 30分钟后,继续我的svn update操作,成功完成。

                  有时耐心,有帮助:)

                  【讨论】:

                    【解决方案13】:

                    如果有来自 SVN 的重复项目。

                    1. 强制关闭 Eclipse。
                    2. 从文件空间中删除重复的项目。 (例如:C:\Users\XXX\Workspace\DuplicateProject)
                    3. 重启 Eclipse
                    4. 已修复。

                    【讨论】:

                      【解决方案14】:

                      我使用 Subversive - SVN Team Provider 3.0.0 和 SVNKit 1.8.10 作为 SVN 连接器。 我将 SVN 连接器更新到最新版本 1.8.11,并修复了它。

                      【讨论】:

                        【解决方案15】:

                        您使用 Maven SCM 连接器吗?如果您不需要它,请尝试卸载它。 Maven SCM 签出需要 SCM 连接器,我不使用 Maven SCM 项目签出,而是使用 SubEclipse 签出并使用导入现有项目将项目转换为 maven 或从 Eclipse 的上下文菜单中转换为 Maven 项目选项。

                        【讨论】:

                          猜你喜欢
                          • 2015-05-19
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 2014-03-21
                          • 2015-04-22
                          相关资源
                          最近更新 更多