【问题标题】:using SVN 1.8.3 with Xcode 5使用 SVN 1.8.3 和 Xcode 5
【发布时间】:2013-10-04 09:24:41
【问题描述】:

我将系统上的 Subversion 客户端更新到 1.8.3。我从 Xcode 5's Source Control 菜单中检查了我的存储库。然后在终端中打开该目录并执行svn update 命令只是为了检查。我收到这条消息 -

“/Path”处的工作副本太旧(格式 29)无法与客户端一起使用 版本“1.8.3 (r1516576)”(需要格式 31)。你需要升级 首先是工作副本。

如果我升级我的副本,我将无法访问源代码管理菜单选项,因为版本对于 XCode 5 来说太高了。

后来我发现了这个XCode 5 Features Link,它说 Xcode 的 SVN 版本是 1.7.9。

  1. 我不明白我的系统上有 2 个版本的 SVN(一个由 Xcode 维护,1.7.9,另一个在 1.8.3)
  2. 如何使用 1.8.3 和 Xcode 5。我真的很想使用 XCode 的 GUI。

【问题讨论】:

    标签: xcode svn xcode5


    【解决方案1】:

    写入“默认值”不适用于 Xcode 5。较新版本的 Xcode 附带其自己的 SVN 二进制文件,位于:

    /Applications/Xcode.app/Contents/Developer/usr/bin/
    

    您需要替换此二进制文件以将 Xcode 的 SVN 客户端升级到 1.8。假设您的新 SVN 客户端位于 /usr/local/bin/(默认 brew 安装路径)中,在终端中键入以下内容:

    cd /Applications/Xcode.app/Contents/Developer/usr/bin/
    sudo mv ./svn ./svn.org
    sudo mv ./svnadmin ./svnadmin.org
    sudo mv ./svndumpfilter ./svndumpfilter.org
    sudo mv ./svnlook ./svnlook.org
    sudo mv ./svnrdump ./svnrdump.org
    sudo mv ./svnserve ./svnserve.org
    sudo mv ./svnsync ./svnsync.org
    sudo mv ./svnversion ./svnversion.org
    
    sudo ln -Ff /usr/local/bin/svn svn
    sudo ln -Ff /usr/local/bin/svnadmin svnadmin
    sudo ln -Ff /usr/local/bin/svndumpfilter svndumpfilter
    sudo ln -Ff /usr/local/bin/svnlook svnlook
    sudo ln -Ff /usr/local/bin/svnrdump svnrdump
    sudo ln -Ff /usr/local/bin/svnserve svnserve
    sudo ln -Ff /usr/local/bin/svnsync svnsync
    sudo ln -Ff /usr/local/bin/svnversion svnversion
    

    我使用 Xcode 5.1 和 SVN 1.8.8 完成此操作,完全没有任何问题。

    【讨论】:

    • 我的 /usr/bin svn 位置没有 svnrdump。不知道如何匹配。
    • 那么不要执行这两行:sudo mv ./svnrdump ./svnrdump.orgsudo ln -Ff /usr/local/bin/svnrdump svnrdump
    • 它在 Xcode 6.4 之前工作正常,但在 Xcode 7 中,它一直说“身份验证失败,因为用户名或密码不正确。”,但我确信它们是正确的。任何想法如何解决它?
    • 我很确定每次有 XCode 更新时都会覆盖它,对吗?
    【解决方案2】:
    1. 这只是两个不同的客户端应用程序。
    2. 您可以通过设置 XCSubversionToolPath 来设置 XCode 的 subversion 客户端的路径,例如(替换为实际的 svn 1.8 路径):

      defaults write com.apple.Xcode XCSubversionToolPath /usr/local/bin/svn
      

    【讨论】:

    • 谢谢!进一步挖掘我发现了我将来可以使用的 xcode 默认值的完整列表。当我将它设置为正确的路径时,我必须在 xcode 中进入我的源代码控制首选项并重新连接它,但它正在工作。
    • @IanStallings 你做了什么重新布线?您是否重新结帐?
    • 这正是我必须做的。我确保我的所有代码都已签入。然后在 xcode 中我进行了“签出”并在出现提示时相应地设置了 svn 存储库信息。
    • @Eran 我试过了。但 Xcode 根本不显示更改状态。你知道为什么
    【解决方案3】:

    上述解决方案最终对我来说适用于 Xcode 5.1;我已经缩短了上面的代码,请随意更改您的目录(例如,因为我使用的是 MacPorts,所以我的 svn 二进制文件位于 /opt/local/bin):

    export xcode_dir=/Applications/Xcode.app/Contents/Developer/usr/bin
    export svn_files="svn svnadmin svndumpfilter svnlook svnrdump svnserve svnsync svnversion"
    export svn_dir=/opt/local/bin
    for f in $svn_files; do echo "sudo mv -v $xcode_dir/$f $xcode_dir/$f.bak && sudo ln -s $svn_dir/$f $xcode_dir/$f”; done | bash
    

    除此之外,如果您在更新 SVN 后遇到问题,请尝试删除您的 project.xcworkspace,并确保您运行的是正确版本的 Xcode! (在尝试验证对 Xcode.app 目录所做的更改时,我仍在运行 Xcode 5.1 BETA……愚蠢的错误,但我花了一段时间才弄清楚)

    【讨论】:

      猜你喜欢
      • 2014-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-11
      相关资源
      最近更新 更多