SVN 升级工作副本

Posted

技术标签:

【中文标题】SVN 升级工作副本【英文标题】:SVN upgrade working copy 【发布时间】:2011-12-20 23:29:41 【问题描述】:

我无法进行 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)

如何解决?

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

【参考方案2】:

您可以升级到 Subversion 1.7。为了更新到 Subversion 1.7,您必须在 Xcode 5 或更高版本中启动现有项目。这将提示警告“The working copy ProjectName should be upgraded to Subversion 1.7”(如下图所示)。

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

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

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

Refer Apple docs for more details.

【讨论】:

【参考方案3】:

这个问题是由于您尝试编译的项目包含的文件比您当前使用的旧 SVN 文件。

你有两种解决方案来解决这个问题

    安装 1.6 版 SVN 以兼容项目 SVN 文件 尝试升级项目..(并不总是有效)。

【讨论】:

【参考方案4】:

在 MacOS 上:

    从here 获取最新编译的 SVN 客户端二进制文件。 安装。 将二进制文件添加到路径(最后一个安装屏幕说明了如何操作)。 打开终端并在您的项目目录中运行以下命令:

    svn 升级

【讨论】:

【参考方案5】:

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

【讨论】:

【参考方案6】:

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

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

更多信息请访问Netbeans Subversion Clients FAQ。

【讨论】:

【参考方案7】:

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

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 的回答。

【讨论】:

【参考方案8】:

从eclipse中,可以在项目上选择,右键->team->upgrade

【讨论】:

找不到升级选项【参考方案9】:

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

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

升级工作副本

Subversion 1.7 对工作副本进行了重大更改 格式。在以前的 Subversion 版本中,Subversion 将 写入时自动将工作副本更新为新格式 进行了操作。然而,Subversion 1.7 将使这成为 手动步骤。在将 Subversion 1.7 与他们的工作副本一起使用之前, 用户将需要运行一个新命令 svn upgrade 来更新 元数据到新格式。此命令可能需要一段时间,并且对于 一些用户,简单地检查一个新的工作可能更实用 复制。 — Subversion 1.7 Release Notes

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

升级工作副本

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

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

【讨论】:

当我发出命令svn upgrade Ubuntu 告诉我“找不到命令” @geneorama:你安装了svn 吗? (sudo apt-get install svn) 感谢您的回复!我确实安装了 svn(subversion),但它是 1.6 版,没有upgrade 命令。如果不添加新的 ppa,Ubuntu 12.04 将无法安装 1.7。 askubuntu.com/questions/65468/… @genorama 下面是为 Mac OS 升级 svn 的说明,如果从 1.6 redfinsolutions.com/blog/update-subversion-mac-os-x 开始,它将起作用。对于 Linux,我想它是类似的。 "这个命令可能需要一段时间,对于某些用户来说,简单地签出一个新的工作副本可能更实用。"我正在运行命令,不知道会发生什么,2 秒后控制台回复升级“。” :P【参考方案10】:

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

【讨论】:

以上是关于SVN 升级工作副本的主要内容,如果未能解决你的问题,请参考以下文章

为啥我不断收到“SVN:工作副本 XXXX 锁定;尝试执行“清理”?

SVN E155016 ... 的工作副本数据库已损坏

可以强制 SVN 将目录视为工作副本吗?

如何恢复SVN工作副本中的ONLY目录?

Xcode“项目”与“项目”,删除与 SVN 工作副本的关联

Svn 1.5.x 与最新版本