Xcode:错误 – >构建失败 – >请升级您的Subversion客户端以使用此工作副本

我正在使用Xcode 4.2.1。 我有这个问题在iOS模拟器上运行现有的应用程序:

svn: The path '.' appears to be part of a Subversion 1.7 or greater working copy. Please upgrade your Subversion client to use this working copy. /Users/me/Library/Developer/Xcode/DerivedData/myproject-dxfzldckuqdmlrghowwkdrbgoigy/Build /Intermediates/myproject.build/Debug-iphonesimulator/MyProject.build/Script-9567AEA113C59633000AA291.sh: No Subversion revision found at /Users/me/Library/Developer/Xcode/DerivedData/myproject-dxfzldckuqdmlrghowwkdrbgoigy/Build/Intermediates/myproject.build/Debug-iphonesimulator/MyProject.build/Script-9567AEA113C59633000AA291.sh line 32. Building revision Command /bin/sh failed with exit code 1 

我安装了Subversion服务器1.7.1,并且在客户端我升级到1.7.1。 我做了一个svn upgrade然后我在Xcode中得到了这个错误。

如果我在终端上重复svn upgrade ,我收到消息Can't upgrade '...' as it is not a pre-1.7 working copy directory

那有什么不对? 我如何解决问题?

最诚挚的问候蒂姆

Xcode尚不支持SVN 1.7。 仅支持1.6。 为了解决您的问题,您需要切换到使用兼容SVN 1.6的工作副本。

由于SVN 1.7客户端根本无法使用1.6个工作副本,因此您需要从客户端删除SVN 1.7.x并恢复为1.6。 (或者也许只是调整你的PATH,所以SVN 1.6工具是第一个。)一旦1.6回来,删除或移开你现有的工作副本,并检查SVN 1.6的新副本。 现在Xcode应该能够使用您的工作副本。

请注意,您可以在SVN 1.7服务器上自由使用SVN 1.6客户端。 一些较新的function将无法使用,但它将起作用。 无需降级服务器或服务器端存储库。

密切关注更新中的Xcode发行说明,因为我确信Apple会在Xcode能够使用SVN 1.7时注意到。 当兼容1.7的Xcode版本可用时,将客户端升级到1.7并再次迁移工作副本应该是安全的。

有一篇post似乎暗示您可以通过更改PATH并在战略位置设置几个软链接来欺骗XCode使用svn 1.7客户端。 不幸的是, 这个post是中文的。 幸运的是, 谷歌翻译和UNIX命令的存在使解密post的内容成为可能。 我会在接下来的几天内尝试一下,如果这个练习中有任何有用的东西,我会更新答案。

编辑:我尝试了post中的步骤,它的工作原理。 这是我做的:

  • 将svn client 1.7.2下载并安装到/opt/subversion
  • .bash_profile中将/ opt / subversion / bin添加到我的PATH
  • 创建了一个备份目录/Developer/usr/bin/orig.svn
  • /Developer/usr/bin/svn*移至/Developer/usr/bin/orig.svn
  • Ran ln -s /opt/subversion/bin/svn* /Developer/usr/bin/

之后我重新启动了XCode,去了Organizer,并且能够附上用svn 1.7.2客户端创建的结账的工作副本。 组织者在存储库旁边显示了一个绿点,显示了修订列表等,所以在这一点上我相信这个技巧已经奏效了。

您可以从http://www.wandisco.com/subversion/download#osx下载并安装二进制包

当xcode版本的SVN安装在/usr/bin ,软件包将安装到/opt/subversion 。 如果将/opt/subversion/bin到路径变量中,将选择它而不是xcode版本。

如果您不想弄乱路径,可以使用一个版本或另一个版本。 man alias的细节。