我无法进行 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)
如何解决这个问题?
我无法进行 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)
如何解决这个问题?
您需要将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
在Eclipse中,您可以选择项目,右键单击->团队->升级
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提供的答案。
这个问题是因为您尝试编译一个包含比您当前使用的SVN版本较旧的文件的项目。
您有两种解决方法来解决此问题
如果您的工作副本中嵌套了其他工作副本,可能会收到需要升级工作副本的奇怪消息。我曾经在Symphony项目中遇到过这个问题,其中一些框架文件夹是工作副本,我想这些文件夹在发布之前没有被适当地清理干净。
在这种情况下,只需搜索文件.svn
,并删除您不需要的.svn
文件夹(当然不要删除您在根目录下的文件夹)。
工具>选项>杂项(选项卡)>版本控制(选项卡)>Subversion(窗格)
,请设置首选客户端=CLI,然后您可以设置已安装的SVN路径,对我来说是C:\Program Files\TortoiseSVN\bin
。在升级到最新版本的Tortoise-SVN之后,我需要先执行“升级”操作(而不是“更新”操作!)。
你应该选择‘升级
’按钮来升级到Subversion 1.7。这会花一些时间。
如果你正在使用终端,那么你可以通过在项目目录中运行以下命令来升级到Subversion 1.7:svn upgrade
请注意,一旦你升级到Subversion 1.7,就无法回到Subversion 1.6。
svn upgrade
时,Ubuntu 告诉我 "未找到命令"。 - geneoramasvn
吗?(sudo apt-get install svn
) - knittlupgrade
命令。Ubuntu 12.04没有安装1.7版本,需要添加新的ppa。http://askubuntu.com/questions/65468/where-can-i-find-a-subversion-1-7-binary - geneorama