21

我正在为 Mac 开发一个应用程序作为一个小团队(我 + 另一个人)的努力。我们位于不同的城市,并且已经开始看到对可靠源代码控制管理的需求。

我们都没有这方面的经验,而且我们都对 Cocoa/Obj-C/Xcode 比较陌生(但确实有 C 知识)。

有人对选择哪个 SCM 系统有任何建议吗?我知道很多人都在使用 Subversion,Xcode 3.1 也支持它。有人有通过 Xcode 使用 Subversion 的经验吗?还是选择独立的 GUI 替代方案(例如版本)是更好的选择?

感谢您对此的任何意见。

格雷戈尔·托马塞维奇,瑞典

更新/个人经验:自从这篇文章以来,我们尝试了 Versions 和 Cornerstone(它们都是 SVN GUI 客户端),以及 Xcodes 对 SVN 的内置支持。我们对 Versions 不是特别满意,它在提交未版本化的文件/构建文件时似乎存在一些问题。Xcode 中内置的 SVN 支持运行良好,尽管它可能有一些我们还没有遇到的限制。Cornerstone 既简单易用又功能强大,而且似乎没有遇到我们在使用版本时遇到的问题。

到目前为止,我们刚刚尝试提交、更新 repo、检查文件的最新/以前版本,并进行了一些文件比较。一旦您开始广泛使用分支,这可能是一个完全不同的球游戏,我们被告知这两个 GUI 客户端可能在这个领域存在一些弱点。

对于它的价值(并且只需要几天的评估),Cornerstone 似乎是一个更好的选择,尽管对于更简单的 SCM,Xcode 也能很好地工作。

感谢所有的评论。

4

10 回答 10

20

Xcode 仅支持 Subversion、Perforce 和 CVS。但是,也有分布式版本控制系统,例如 Mercurial、Bazaar 和 Git。这些没有 Mac 原生 GUI,但您仍应考虑使用它们。就个人而言,我喜欢在 Mercurial 存储库中管理我的项目。

[添加于 2011-03-10] Xcode 4 增加了对 Git 的支持。我们中的一些人已经提出了 Mercurial 支持的请求;如果你愿意,你也应该这样做。

于 2009-01-11T01:01:15.470 回答
14

Mac 上的 Mercurial 有一个不错的 GUI 前端,称为 MacHG:http: //jasonfharris.com/machg/

它是免费的,非常好恕我直言。

于 2010-07-02T13:07:29.297 回答
6

Xcode 的 Subversion 支持非常好。我执行的 90% 的 SVN 活动都可以通过 Xcode 轻松完成。对于其他几件事,我只是启动终端。

在他们的 SVN 客户端实现中有几件事很烦人:

  • 检查以查看哪些本地文件已被修改的代码似乎在后台计时器上运行,并且它非常潜在。有时 Xcode 需要 5 分钟才能将文件显示为已修改。同样的事情是更加夸张的 w/r/t 远程修改。
  • 有时,当您重命名或删除不受源代码控制的文件时,会出现一个对话框,询问“您是否也希望在 SVN 中[重命名/删除]此文件?” 选项是“是”或“取消”。您绝望地选择“是”只是为了得到一个当之无愧的 SVN 错误。

总的来说,我会推荐它。

于 2009-01-10T23:38:55.607 回答
6

使用 Subversion 不会出错。

如果像我一样,您不太喜欢 Xcode 的 SVN 集成,您可以随时选择使用命令行工具,或几个 GUI 应用程序之一,如 Versions、CornerStone 或 SvnX。这些工具中的大多数都可以很好地协同工作,因此您不必依赖于您开始使用的工具。

我个人的大部分工作都是使用 Versions 完成的,并且每隔一段时间就使用具有相同工作副本的命令行工具。

如果在有人围绕它创建一个好的 GUI 应用程序之前,你习惯于只使用命令行工具,那么 git 也是一个非常可行的选择。

披露:我是从事版本工作的人之一,所以我可能有点偏见;)

于 2009-01-11T02:53:58.817 回答
5

警告:如果你只是简单地告诉 XCode 将项目添加到存储库,通过给它顶级目录,它会将构建目录添加到存储库,这当然是一件糟糕的事情。

为了解决这个问题,您必须将构建目录移动到另一个位置,以便 XCode 不会尝试导入它,或者手动逐个添加项目的离散文件夹。

于 2009-01-11T01:41:00.040 回答
3

Subversion 是传统的 OS X 源代码控制解决方案,在 Leopard 中,Xcode 和 OS X 都支持它,更不用说第三方 GUI 应用程序(其中一些看起来很漂亮)。尽管如此,许多独立的 OS X 开发人员在过去的一两年里已经转向了 Git。作为一个单一的开发者,我可以告诉你,Git 对我来说是一个非常好的解决方案,并且它与 Github 一起为小型团队工作提供了一个很好的解决方案。

于 2009-01-11T01:02:54.797 回答
2

如果您对在 OS X 上使用 Mercurial 感兴趣,请尝试 SourceTree,它不是免费的,但价格具有竞争力,并且具有非常精致的 Mac OS 感觉。在过去的几个月里,我断断续续地将它用于个人项目,并发现它直观且相当强大。

它可通过 Mac App Store 获得,并支持 Git 和 Mercurial。他们有一个网站http://www.sourcetreeapp.com/提供更多信息。

于 2011-06-13T18:36:12.513 回答
1

如果你想要颠覆,我听说过关于Springloops的好消息。我也以类似的方式与一些朋友一起编写代码,我们使用Github。Git 是一个如此美妙的体验。我不使用任何 GUI,因为我使用 shell 提示时效率更高。当然,如果 Xcode 支持 Git 存储库,我会很高兴。

于 2009-01-10T22:45:25.323 回答
0

Mercurial(如 git)是“分布式的”,可能被认为比 svn(但不太成熟)更现代、更新潮。如果要使用 mercurial 自动签入,可以添加以下行:

hg commit -m "Xcode 自动提交"

作为 XCode 构建的“运行脚本”阶段的一部分,可在以下位置找到:项目 > 新构建阶段 > 新运行脚本构建阶段

于 2010-03-13T16:27:18.630 回答
0

我使用:https ://bitbucket.org/hsivank/xcode4-with-mercurial/wiki/Home

于 2011-07-15T12:09:50.247 回答