136

我无法进行 SVN 提交。我收到此错误:

org.apache.subversion.javahl.ClientException: The working copy needs to be upgraded
svn: Working copy 'C:\.... is too old (format 10, created by Subversion 1.6)

如何修复?

4

10 回答 10

158

您必须将您的 subversion 客户端至少升级到 1.7。

使用命令行客户端,您必须通过发出以下命令手动升级您的工作副本格式svn upgrade

升级工作副本

Subversion 1.7 对工作副本格式进行了重大更改。在以前的 Subversion 版本中,当执行写入操作时,Subversion 会自动将工作副本更新为新格式。然而,Subversion 1.7 将使这成为一个手动步骤。在将 Subversion 1.7 与他们的工作副本一起使用之前,用户将需要运行一个新命令,svn upgrade以将元数据更新为新格式。此命令可能需要一段时间,对于某些用户来说,简单地签出新的工作副本可能更实用。
Subversion 1.7 发行说明

TortoiseSVN 将使用下一个写入操作执行工作副本升级:

升级工作副本

Subversion 1.7 对工作副本格式进行了重大更改。在以前的版本中,Subversion 会在执行写入操作时自动将工作副本更新为新格式。然而,Subversion 1.7 将使这成为一个手动步骤。

在您可以使用 TortoiseSVN 1.7 的现有工作副本之前,您必须先升级格式。如果您右键单击旧的工作副本,TortoiseSVN 只会在上下文菜单中显示一个命令:升级工作副本。
TortoiseSVN 1.7 发行说明

于 2011-11-03T08:41:14.470 回答
57

from eclipse, you can select on the project, right click->team->upgrade

于 2012-08-07T15:57:51.057 回答
6

在 MacOS 上:

  1. 从这里获取最新编译的 SVN 客户端二进制文件。
  2. 安装。
  3. 将二进制文件添加到路径(最后一个安装屏幕解释了如何)。
  4. 打开终端并在您的项目目录上运行以下命令:

    svn升级

于 2014-02-04T11:52:01.200 回答
4

如果您刚刚在您的机器上升级到 SVN 1.7(就像我刚刚所做的那样),并且在您的 Eclipse 工作区中有很多需要升级的项目,您可以在基于 Unix 的系统上的终端窗口中执行以下操作:

cd [eclipse/workspace] # <- you supply the actual path here

for file in `find . -depth 2 -name "*.svn"`; do svn upgrade `dirname $file` ; done;

在谷歌上搜索了一下之后,我发现对于 Windows 用户来说似乎是等价的:

http://www.rqna.net/qna/mnrmqn-how-to-find-all-svn-working-copies-on-win-xp.html

请参阅页面中间的 Alexey Shcherbak 的答案。

于 2013-02-28T14:52:23.080 回答
2

此问题是由于您尝试编译的项目具有比您当前使用的旧 SVN 文件的项目。

您有两种解决方案来解决此问题

  1. 安装 1.6 版 SVN 以兼容项目 SVN 文件
  2. 尝试升级项目..(并不总是有效)。
于 2012-09-26T11:38:53.130 回答
2

当有其他工作副本嵌套在您的工作副本中时,您还会收到有关需要升级工作副本的奇怪消息。我在 Symphony 项目中遇到了这个问题,一些框架文件夹是工作副本,我想在它们发布之前没有被正确清理。

在这种情况下,只需对 进行文件搜索.svn,然后删除.svn您不想要的文件夹(当然不要从根目录删除您的文件夹)。

于 2017-09-19T13:28:40.597 回答
1

如果您从 Netbeans (7.2+) 收到此错误,则表示您单独安装的 Subversion 版本高于 netbeans 中的版本。就我而言,Netbeans (v7.3.1) 有 SVN v1.7,我刚刚将我的 SVN 升级到 v1.8。

如果您查看Tools > Options > Miscellaneous (tab) > Versioning (tab) > Subversion (pane),设置首选客户端 = CLI,然后您可以设置安装的 SVN 的路径,这对我来说是C:\Program Files\TortoiseSVN\bin

可以在Netbeans Subversion 客户端常见问题解答中找到更多信息。

于 2013-07-31T12:15:19.150 回答
1

在 Visual Studio 中使用AnkhSVN,在解决方案资源管理器中的解决方案上下文菜单下还有一个“升级工作副本”选项(如果适用)。

于 2013-10-07T11:26:50.470 回答
1

升级到最新版本的 Tortoise-SVN 后,我需要先进行“升级”(而不是“更新”!)。

于 2011-11-03T08:41:05.267 回答
0

您可以升级到 Subversion 1.7。为了更新到 Subversion 1.7,您必须在 Xcode 5 或更高版本中启动现有项目。这将提示警告“<code>工作副本 ProjectName 应升级到 Subversion 1.7”(如下图所示)。

警告截图

您应该选择“<code>Upgrade”按钮升级到 Subversion 1.7。这将需要一些时间。

如果您使用的是终端,那么您可以通过在项目目录中运行以下命令来升级到 Subversion 1.7: svn upgrade

请注意,一旦您拥有upgraded to Subversion 1.7 you cannot go back to Subversion 1.6.

有关更多详细信息,请参阅 Apple 文档。

于 2016-04-15T06:01:30.400 回答