SVN升级工作副本

137

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

如何解决这个问题?

10个回答

159

您需要将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会在执行写操作时自动将工作副本更新为新格式。但是,Subversion 1.7将使这成为一个手动步骤。

在使用TortoiseSVN 1.7之前,您需要先升级工作副本格式。如果您右键单击旧的工作副本,TortoiseSVN上下文菜单中只会显示一个命令:Upgrade working copy(升级工作副本)。
TortoiseSVN 1.7 Release notes


2
当我输入命令 svn upgrade 时,Ubuntu 告诉我 "未找到命令"。 - geneorama
@geneorama:你安装了svn吗?(sudo apt-get install svn - knittl
5
感谢回复!我确实安装了svn(子版本控制),但它是1.6版本,没有upgrade命令。Ubuntu 12.04没有安装1.7版本,需要添加新的ppa。http://askubuntu.com/questions/65468/where-can-i-find-a-subversion-1-7-binary - geneorama
@genorama 这里是升级Mac OS svn的说明,如果从1.6开始则有效 http://redfinsolutions.com/blog/update-subversion-mac-os-x。对于Linux,我想它很类似。 - Mike Eng
1
此命令可能需要一段时间,对于某些用户而言,直接检出一个新的工作副本可能更加实用。我执行了该命令,不知道会发生什么,2秒后控制台回复升级完毕'.' :P - rabidmachine9
显示剩余3条评论

57

在Eclipse中,您可以选择项目,右键单击->团队->升级


无法找到升级选项。 - Amit Thaper

6

在MacOS上:

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

svn upgrade


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提供的答案。


2

这个问题是因为您尝试编译一个包含比您当前使用的SVN版本较旧的文件的项目。

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

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

2

如果您的工作副本中嵌套了其他工作副本,可能会收到需要升级工作副本的奇怪消息。我曾经在Symphony项目中遇到过这个问题,其中一些框架文件夹是工作副本,我想这些文件夹在发布之前没有被适当地清理干净。

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


1
在Visual Studio中,使用AnkhSVN,当适用时,在解决方案资源管理器中的上下文菜单下也有“升级工作副本”的选项。

1
如果您从Netbeans(7.2+)中获得此错误,则意味着您单独安装的Subversion版本高于netbeans中的版本。在我的情况下,Netbeans(v7.3.1)有SVN v1.7,而我刚刚将我的SVN升级到v1.8。
如果您查看工具>选项>杂项(选项卡)>版本控制(选项卡)>Subversion(窗格),请设置首选客户端=CLI,然后您可以设置已安装的SVN路径,对我来说是C:\Program Files\TortoiseSVN\bin
更多信息可在Netbeans Subversion Clients FAQ中找到。

1

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


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

Screenshot for warning

你应该选择‘升级’按钮来升级到Subversion 1.7。这会花一些时间。

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

请注意,一旦你升级到Subversion 1.7,就无法回到Subversion 1.6。

请参考苹果文档获取更多详细信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接