在我工作的公司,我们正在开始一个项目,从头开始,因为我和另外两个开发人员是公司的第一个开发人员,我们正在努力为我们的工作建立一个基础。
因为我们将来会发展到Windows Phone和Android以及可能的iPhone。我们将分别使用Visual Studio 2010和IntelliJ for WP和Android(我们在这里看到的内容不多,欢迎任何建议)。
我们无法决定使用的VCS,虽然我们所有人都使用过SVN,但我们中只有2人使用过TFS版本控制,我们并不喜欢它,特别是即使我们中的一个人没有更改文件,也必须签出以进行编辑并获得冲突。 Git和mercurial我们只是玩了一点。
任何人都能提供一些见解,了解这些优势之间的主要优势,并帮助我们选择?
由于
答案 0 :(得分:4)
品味问题。就这么简单。
Git,Hg和Bzr几乎相当于95%的功能,可能是大多数用户想要的大部分功能。不过,他们使用不同的语义进行分支。
所有DVCS都优于合并。
Git工具支持 - 根据我的口味 - 在Windows上非常低劣,但在所有其他系统上与其他两个相当。
中央存储库是所有这些的惯例,而不是必须的。
答案 1 :(得分:0)
TFS 11已经在测试阶段作为“Go Live”(意味着你可以在生产中使用它),你有一种新的工作空间称为“本地工作空间”,我认为你会喜欢。
您无需签出以编辑文件,在后台监控更改(无论是来自VS还是来自其他软件或shell),然后您在办理登机手续时“重新调整”事情。另一个好处是你不需要连接到TFS服务器来贡献,在这种情况下,可怕的在线/离线模式不再存在。
对于你提到的合并'问题',丢弃Visual Studio使用的合并工具并转到KDiff3或Beyond Compare,使用三向合并设置它们将获得最佳结果。一旦你了解了基本技巧,TFS的合并过程就是最好的。 Visual Studio 11还有一个全新的comp / diff工具,值得一试。
DVCS主要用于开源项目,因为它可以让您根据自己的喜好创建分支。我不同意先前有关合并更好的评论。合并总是很痛苦,请务必处于可以从三方合并中受益的场景(减少冲突的最有效方法)。
也许你可以试试TFSPreview.com平台,它真的很棒。