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 锁定;尝试执行“清理”?