在Xcode中使用Subversion

时间:2009-10-11 21:52:47

标签: svn xcode version-control

似乎“using subversion with xcode”的所有初始Google结果实际上只是安装和配置svn和Xcode的教程,而不是实际上使用这两者(即与之交互) svn通过Xcode的GUI)。

是否有人知道一个好的指南,教导通过Xcode的GUI使用svn的技巧和陷阱?能够弥补最优秀的Version Control with Subversion书和Xcode IDE之间差距的东西(如纯xcode GUI ,不使用任何终端命令)?

修改

我们都喜欢我们的终端命令,我们都喜欢Eclipse但是(我用最好的方式表示这个)并不是真正的问题。我更喜欢通过Xcode的IDE而不是通过终端使用svn,因为我喜欢(好吧,对于这种情况)在Xcode的IDE中编码而不是使用vim和gcc。 Apple工程师花了很多时间在Xcode中实现SCM菜单;某人必须在某处看到的使用指南

10 个答案:

答案 0 :(得分:10)

我使用this page作为使用SVN设置我的XCode项目的参考。这是一个很好的起点,但我将简要介绍一下我所做的事情(因为页面并不是真的有用!)。

一些注意事项:我正在使用XCode 3.1.2和Subversion 1.4.2。我听说过使用SVN 1.5时遇到了问题,但是有很多方法可以解决这个问题。

首先,我已经设置了一个存储库,然后创建了XCode项目。

  1. 在XCode中,您需要使用首选项窗口中的SCM选项卡将其设置为了解您的存储库。输入:

    1. 名称(这是任意的,用于参考XCode)
    2. 方案(http或svn)
    3. 主持人(即svn.example.com)
    4. 路径(位于主机上的SVN存储库的确切路径)
    5. 端口(仅当它不是默认值时)
    6. 用于访问存储库的用户名和密码。
    7. 当您输入其他字段时,URL将自动填充。当所有字段都很好并且XCode说它可以连接时,点击“OK”。

    8. 然后打开您的项目并在项目本身上执行“获取信息”(带有感叹号的圆形蓝色图标)。在底部的“常规”选项卡下面是SCM的一个选项,选择您在1中创建的存储库并关闭窗口。

    9. 现在在菜单栏中打开SCM并转到“存储库”。希望您使用基本级别的分支,主干和其他目录构建存储库,因为XCode不支持签出根目录。因此,在列表中一次一个目录,然后单击“Checkout”按钮并选择要检查的目录(我建议在XCode项目目录中使用“Code”或“Source”或“SVN”目录)。你不能一次签出多个目录,但是你可以告诉下一个目录在第一个目录完成之前和XCode对命令进行排队。

    10. 完成所有操作后,请返回您的XCode项目窗口并将“Add - > Existing Files ...”添加到您的项目中。选择您已将存储库签出的目录,我建议使用“创建文件夹引用”选项而不是“递归创建组”选项,因为添加和删除的项目将自动反映在“文件夹参考”中,但不会反映在组中。

    11. 现在您已将SVN存储库导入XCode项目。每当您进行更改时,只需在文件中右键单击(控制 - 单击,如果您只有1个按钮),在上下文菜单的底部是用于比较,提交,更新和丢弃的SCM选项(还原) ) 文件。您还可以使用菜单栏中的SCM菜单进行文件或项目范围的更新/提交/恢复。

答案 1 :(得分:6)

我是the_mandrill的评论,XCode内部的SVN支持非常有限,特别是如果你已经习惯了Eclipse。

我也不明白为什么每个人似乎都需要视觉客户。我在项目目录中打开了一个终端窗口,我从命令行与SVN交互没有问题。

答案 2 :(得分:5)

我知道这不是你提出的要求,但我不会太依赖Xcode中使用SVN,因为你可以用它做的事情是非常有限的。它能够直接从IDE执行diff或annotate,但不是很多其他功能。我不认为它可以替代使用单独的独立客户端,如SmartSVN或版本。

您还必须跳过a number of hoops才能让Xcode与SVN版本1.5一起使用,因此在安装独立客户端之前需要注意一些事项。如有疑问,请先查看沙箱。

答案 3 :(得分:3)

以下是在XCode中配置subversion的最佳教程之一 - http://iphonedevelopment.blogspot.com/2009/03/version-control-is-your-friend.html

它还教导甚至在本地MAC中创建存储库。

答案 4 :(得分:2)

如果你想通过gui接口使用svn,那么我建议你使用eclipse + subclipse插件(它有更多的功能,比xv上的svn更可靠和容易)..

您将正常使用xcode,但您只能将eclipse用作svn客户端(通过在eclipse中创建一个通用项目并使其指向您的xcode项目目录)

这里是如何安装subclipse的tutorial

答案 5 :(得分:2)

很多人在使用svn客户端中的构建时遇到问题,尤其是将新项目导入svn并且工作正常。

我创建了一个关于如何执行此操作的直接前瞻教程,以及一个众所周知的陷阱(适用于Xcode,直到最新版本的xcode,包括Iphone 4 sdk)

http://www.sodeso.nl/?p=599

答案 6 :(得分:1)

我自己找了一些好的资源,我发现的最好的一个是来自WWDC 2012的最新视频:

如果不是这样,请在此处登录:https://developer.apple.com/videos/wwdc/2012/

然后有一个视频叫做:Session 411 - Xcode中的源代码管理

它解释了如何使用GIT和Subversion进行版本控制。真的很棒!

希望它有所帮助!

答案 7 :(得分:0)

正如许多其他答案中所提到的那样,使用Xcode的svn客户端非常弱(而且很实用)。

就我个人而言,我认为运行Eclipse 只是来访问svn客户端有点沉重。

我建议两个答案:

  • 为Mac使用专用的svn客户端(版本和Cornerstone都非常好,虽然不是免费的......有免费的,如svnX)
  • 如果您对终端不太满意,可以编写一些您想要使用的关键命令,并将它们添加到Xcode用户脚本文件夹中,然后您可以从击键的菜单项触发它们。就像你使用Xcode本机客户端一样。有很多关于如何通过谷歌提供这方面的例子。

答案 8 :(得分:0)

我遇到过这些 - 不知道它们有多好用,但是如果可以的话我想添加一些资源:

答案 9 :(得分:0)

使用XCode4,您可以从IDE本身执行几乎所有SCM任务,这是向前迈出的一大步。

以下是官方指南的链接: http://developer.apple.com/library/mac/#documentation/ToolsLanguages/Conceptual/Xcode4UserGuide/SCM/SCM.html#//apple_ref/doc/uid/TP40010215-CH7-SW26

不幸的是,你仍然需要使用终端命令行向SCM添加新项目,这也清楚地记录在上面的链接中。

它没有告诉您的是,您还需要手动将忽略指令添加到您的SCM配置,否则您将最终获得用户设置并在您的存储库中构建输出。我目前正在搞清楚这个清单,一旦最终确定,我会更新这个答案。

PS: 我知道这个问题现在已经很老了,但是我已经把这个问题添加到了那些到达这里的人那里寻找像我一样的答案。

PPS: 终端命令行增加了人为错误的概率,需要更长时间,更复杂并且对最终用户不太透明。总的来说,能够从XCode中向SCM添加项目的遗漏是糟糕的设计,我期望Apple通常擅长简化UI。对于那里的命令行粉丝你可能会觉得L337但是尝试管理一个程序员团队并负责他们的代码,命令行不是你的朋友。

相关问题