我应该为 iPhone 开发使用什么 OSX/XCode 版本控制系统?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/1378399/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
What OSX/XCode version control system should I use for iPhone development?
提问by billmaya
I've been developing my first iPhone app part-time and would like to start using a more rigorous form of version control than I've been using over the past four months, i.e. copying source code folders to another directory and time stamping them.
我一直在兼职开发我的第一个 iPhone 应用程序,并希望开始使用比我过去四个月使用的更严格的版本控制形式,即将源代码文件夹复制到另一个目录并给它们加时间戳。
I've used SourceSafe and Team Foundation System but I don't have a good idea of what version control systems (VCS) are available for the Macintosh. I've seen ads on SO for a Subversion front end but would like some other options.
我使用过 SourceSafe 和 Team Foundation System,但我不太清楚 Macintosh 有哪些版本控制系统 (VCS)。我已经在 SO 上看到了 Subversion 前端的广告,但想要一些其他的选择。
Here's a list of my initial requirements:
这是我的初始要求列表:
- Runs locally under OS X Leopard 10.5.7
- Integrates with XCode 3.1.3 (if no integration, user-friendly interface)
- Basic VCS features - check-in comments, branching, pinning
- Advanced VCS features like build automation or reports would be nice but not critical at this time
- Ability to handle multiple developers down the road (6-12 months)
- 在 OS X Leopard 10.5.7 下本地运行
- 与 XCode 3.1.3 集成(如果没有集成,用户友好的界面)
- 基本的 VCS 功能 - 签入评论、分支、固定
- 诸如构建自动化或报告之类的高级 VCS 功能会很好,但目前并不重要
- 能够处理多个开发人员(6-12 个月)
Thanks in advance for the help.
在此先感谢您的帮助。
回答by Whatever
Mercurialwould be my pick for version control for a project starting as a solo project if you don't want to set up a dedicated server. Mercurial requires no server because it's a distributed VCS, every working copy is also a complete repository, so once you've installed Mercurial you are ready to go, just type 'hg init' in the root directory of your project and you're off.
如果您不想设置专用服务器,Mercurial将是我对作为单独项目开始的项目的版本控制的选择。Mercurial 不需要服务器,因为它是一个分布式 VCS,每个工作副本也是一个完整的存储库,因此一旦您安装了 Mercurial,您就可以开始使用了,只需在项目的根目录中键入“hg init”即可.
It's perfect for working alone or with a small number of developers (i.e. no IT staff or sysadmins available), it has a utility that lets you quickly set up a temporary server for your local repository so when you meet up with people it's easy for them to clone the repository or share changes. You can also just give people copies of your repository over email or USB key or copy them over the network or whatever and reconcile changes to the copies against each other later.
它非常适合单独工作或与少数开发人员(即没有 IT 人员或系统管理员可用)一起工作,它具有一个实用程序,可让您为本地存储库快速设置临时服务器,因此当您与人会面时,他们很容易克隆存储库或共享更改。您也可以通过电子邮件或 USB 密钥向人们提供您的存储库的副本,或者通过网络或其他方式复制它们,然后稍后相互协调对副本的更改。
For me Mercurial made the difference between actually using a VCS for personal projects and just giving up because it's too much trouble. Setting up a Subversion server locally isn't a huge deal but it's still enough trouble to make me not bother, and if you really want to be thorough you'd want to think about how to do proper backups, etc. With Mercurial at any point you can just back up your working copy to other media and you have a backup. I don't know if this really makes sense but Mercurial is a VCS that you can use casually and informally thanks to the distributed nature.
对我来说,Mercurial 在实际将 VCS 用于个人项目和因为太麻烦而放弃之间产生了差异。在本地设置一个 Subversion 服务器并不是什么大问题,但它仍然足以让我不打扰,如果你真的想彻底,你会想考虑如何做适当的备份等。 使用 Mercurial点您可以将您的工作副本备份到其他媒体,并且您有一个备份。我不知道这是否真的有意义,但 Mercurial 是一个 VCS,由于其分布式特性,您可以随意和非正式地使用它。
No Xcode integration, but having used various VCS' with and without integration I don't think it's very important as long as good clients are available. These days I've mostly settled on just going command line and it's refreshing.
没有 Xcode 集成,但是使用了各种 VCS 集成和不集成,我认为只要有好的客户端可用,这不是很重要。这些天来,我大部分时间都选择使用命令行,这让我耳目一新。
Perforce, IMO, is right out. Aside from being a commercial product it is obnoxious beyond belief. It requires you to be connected to a server at all times or things become a major pain in the ass. So if you just want to work on stuff from multiple machines in multiple locations or if you want to have people on the project that won't be on the same network all the time it's going to suck. Perforce just constantly beats you over the head with the fact you are using Perforce, no other VCS I've used is so in your face and annoying.
Perforce,IMO,是正确的。除了作为一种商业产品之外,它令人难以置信地令人讨厌。它要求您始终连接到服务器,否则事情就会变得非常麻烦。因此,如果您只想在多个位置的多台机器上处理内容,或者如果您想让项目中的人不会一直在同一个网络上,那将会很糟糕。Perforce 只是因为您正在使用 Perforce 的事实而不断击败您,我使用过的其他 VCS 都没有让您如此讨厌和烦人。
Gitis another option with a similar feature set to Mercurial that might be worth looking at. In my case I also do Windows stuff and Git's Windows support is supposedly crap so I went with something that works on all my platforms.
Git是另一个选项,它具有与 Mercurial 类似的功能集,可能值得一看。在我的情况下,我也做 Windows 的东西,而 Git 的 Windows 支持据说是垃圾,所以我选择了适用于我所有平台的东西。
Build automation IMO is the build server's job, not the VCS' job, so if you want build automation find an appropriate build server.
构建自动化 IMO 是构建服务器的工作,而不是 VCS 的工作,因此如果您想要构建自动化,请找到合适的构建服务器。
回答by mahboudz
SVN or Subversion is included with Xcode and is well integrated with it. As you grow to have bigger needs, you can use third-party Subversion servers and use the same SVN support over the network. If you don't like SVN, I think XCode supports CVS too.
SVN 或 Subversion 包含在 Xcode 中并与它很好地集成。随着您的需求越来越大,您可以使用第三方 Subversion 服务器并通过网络使用相同的 SVN 支持。如果你不喜欢 SVN,我认为 XCode 也支持 CVS。
If you're looking for something adequate, cheap, and expandable, then just mosey on over to the SCM menu of XCode, and check out what's already there. If you need help setting up SVN, just comment.
如果您正在寻找足够、便宜且可扩展的东西,那么只需转到 XCode 的 SCM 菜单,并查看已有的内容。如果您需要帮助设置 SVN,请发表评论。
回答by Michael Mann
IT looks like subversion would be your best choice for XCode as there is already some guidence on getting that up and running with XCode here. Subversion addresses all of the features you are speaking of. Pinning specifically is a feature of Source Safe; however subversion can do tagging. Build automation is not a feature of a source control system, but source control systems are typically used in continuous integration server scenarios. I have not used it but from what I understand Hudson is a continuous integration Server which is gaining popularity and momemtum. You can find more information on Hudson hereand here
它看起来像颠覆将是Xcode中的最佳选择,因为已经有在得到该启动和运行的XCode一些指导做好在这里。Subversion 解决了您所说的所有功能。固定是 Source Safe 的一个特性;然而颠覆可以做标记。构建自动化不是源代码控制系统的功能,但源代码控制系统通常用于持续集成服务器场景。我没有使用过它,但据我所知,Hudson 是一个持续集成服务器,它越来越受欢迎和动量。您可以在此处和此处找到有关 Hudson 的更多信息
回答by Rob Fonseca-Ensor
I'd also put in a vote for subversion since XCode supports it natively. I've been using it myself and have been very happy.
我也会投票支持颠覆,因为 XCode 本身就支持它。我自己一直在用,很开心。
HoweverI'd question your requirement to run the server locally. Sure, you can do that no problems with subversion. But wouldn't you be nervous about your hard disk failing?
但是我会质疑您在本地运行服务器的要求。当然,你可以用颠覆来做到这一点。但是您不会因为硬盘故障而紧张吗?
I've been using Beanstalkto host my source code. It's free for up to 3 developers, you'll be able to upgrade your account once you grow, its fast and it's SAFE.
我一直在使用Beanstalk来托管我的源代码。它对最多 3 个开发人员免费,一旦您成长,您就可以升级您的帐户,它快速且安全。
回答by Traveling Tech Guy
SubVersioN (SVN)fulfills (most of) your requirements.
SubVersioN (SVN)满足(大部分)您的要求。
回答by Alex Reynolds
回答by marramgrass
I just looked in Xcode (3.2, though, so it may not be exactly the same) and the options for source control integration are subversion, CVS and perforce.
我刚刚查看了 Xcode(不过,3.2,所以它可能不完全相同)并且源代码控制集成的选项是 subversion、CVS 和 perforce。
Outside of Xcode, there are a couple of very nice GUI clients for subversion for OS X.
在 Xcode 之外,有几个非常好的 GUI 客户端用于 OS X 的 Subversion。
Subversion would be a good place to start, it seems.
Subversion 似乎是一个很好的起点。
All the cool kids are using distributed VCSes these days, apparently. You might want to spend half an hour reading up on git or mercurial (hg - my preference). There's no direct integration with Xcode, but they're easy enough to get into.
显然,现在所有酷孩子都在使用分布式 VCS。您可能想花半个小时阅读 git 或 mercurial(hg - 我的偏好)。没有与 Xcode 的直接集成,但它们很容易上手。