用于维护不同版本的最佳源控制系统

时间:2010-05-10 12:02:50

标签: .net git version-control tfs2010

我们需要能够同时维护一系列不同版本的系统。我认为最好使用分支。 我们目前使用TFS2008进行源代码控制,工作项和自动构建。

此任务的最佳版本控制解决方案是什么? 我们的组织正在与TFS2010合并。 TFS2010能否为我们提供轻松管理每个系统版本的一系列分支所需的功能? 我们需要能够将每个版本与其他版本隔离开来,以便我们可以为每个版本进行测试和部署。

我们的开发团队由5位.net开发人员和两位Flash开发人员组成。

我听过很多关于GIT的讨论。我们是否应该考虑使用GIT代替TFS进行源代码控制?是否可以将TFS2010与GIT一起使用? 有没有人有类似的设置可以很好地工作?

赞赏任何建议!

谢谢,

谢蒂尔。

9 个答案:

答案 0 :(得分:10)

你应该考虑Git(或Mercurial)的主要原因是:

如果您的团队位于一个站点中,并且您的开发过程足够线性(简单的合并工作流程),则集中式VCS就足够了。

从那时起,TFS2010已经做了一些有趣的演变,特别是在其branching model上,以及其中集成的其他功能(工作项的层次结构,使用“Gated Check-in”构建并基于“Workflow Foundation” “)使其成为比仅限于VCS方面的工具更好的候选者。

答案 1 :(得分:9)

Mercurial也将完成这项工作。

这是一个很棒的tutorial

答案 2 :(得分:5)

2010年TFS - 请放手。不是一个伟大的版本控制系统,但由于其余所有。 GIT将让您开放选择工作项跟踪,再次连续集成。保持供应商数量(技术较低是改善管理的核心。

答案 3 :(得分:1)

今天主要有两种类型的版本控制系统(VCS),即所谓的分布式VCS和中央存储库系统。

今天最流行的“分布式”VCS是git和mercurial。最受欢迎的中央存储库系统是Subversion和Microsoft的SourceSafe。 http://hginit.com介绍解释了“分布式”VCS优于中央系统的优势。

使用分布式VCS,每个开发人员都有自己的本地存储库。它通常与持有官方版本的共享中央存储库一起使用。但这只是一个存储库组织。 “分布式”VCS在管理合并方面优于纯粹的集中式VCS。

答案 4 :(得分:1)

根据我的经验,如果您正在寻找DVCS,Git或Mercurial(Hg)是可行的方法。然而,在Git和Hg之间做出决定是一项更艰巨的任务。

您主要使用Windows吗?如果是这样,Hg可能是你的朋友。结合TortoiseHg,它是一个非常好的多功能工具,与Git相比,易于使用。它有点不那么复杂,但处理Git可以处理的大部分事情,即使不是QUITE也很顺利。

如果您使用的是Linux或Unix shell,Git将是我的选择。我个人在Windows中使用Git,使用git shell实用程序。 (如果你愿意的话,它在Cygwin中也可以正常工作)我发现Git比Mercurial更有效地处理我的项目。但是,如果你不熟悉命令行,我发现TortoiseGit比TortoiseHg更复杂(也很笨重)。但因为我熟悉bash,git绝对是我的偏好。在我和他们两个人的时间里,它比Hg更快,更精简,更通用。它只是有点复杂,所以学习曲线越来越高,你可能很容易犯错误,因为我很短暂。

所以在我的估计中,真正的问题是:

Windows(Hg)或Unix(Git)

图形化(TortoiseHg)或命令行(Git shell)

答案 5 :(得分:0)

的Subversion !!!

我喜欢Subversion,+ TortiseSVN + VisualSVN

http://subversion.tigris.org/
http://tortoisesvn.tigris.org/
http://www.visualsvn.com/

Subversion和Tortise是免费的!并且VisualSVN每个许可只需50美元(但你不必使用Visual-SVN,它只是VS集成......就我而言,没有必要。)

这是所有三种产品的教程和安装指南 http://www.west-wind.com/presentations/subversion/

和另一个......
http://www.dev102.com/2008/10/07/how-to-use-the-svn-client-and-start-working-with-your-subversion-version-control/

答案 6 :(得分:0)

您需要的所有要求都包含在TFS 2010中。分支和保持分支机构隔离。

TFS更像是一个版本控制系统。它也是一个工作/错误控制系统,并具有集成构建的工具。如果您需要这些,并且您已拥有TFS 2010许可证,请不要在其他系统上浪费时间。

好的,TFS没有分发,但实际上,在工作时我喜欢TFS不分发。一旦我签入东西(在我的个人分支中),它将在每日备份中,并且可供其他人查看。 (对于我的家/爱好/个人用品我使用mercurial)。

对于所有其他系统,有可用的工具为您提供构建和错误跟踪,因此对于其他不可用的工具而言,这不是问题,只需花时间选择符合您需求的工具。

答案 7 :(得分:0)

我很喜欢git,它也被集成到许多其他应用程序中,比如Eclipse,Trac。当你有Git时,谁需要为VCS付费。

Linux内核开发使用git的事实,我知道因为Linus这么说:),这不是一个小项目本身就说明了。

答案 8 :(得分:0)

良好的修订控制系统将在我工作时帮助我 分散的方式。不是因为我喜欢分散,而是因为 日常需求有一种分散人们如何运作的方式。 当一个小组并行工作时,散射会加剧 在一个体面的项目上。

A人正在开发功能1。 B人正致力于功能2。 C人正在努力修复已发布版本的报告错误。

当A正在做他的工作时,他会观察代码中的错误并修复它 在现场,以免忽视它,并继续。 C人进行了3次更正。

A,B和C聊天,B觉得他需要C修复过的错误 马上完成了错误修复,但不是A的功能。 C希望A的错误修复。 A希望C的错误修复。 等等。

Boss决定我们想要一个功能1的版本,另一个版本的功能2, 以及具有这两个功能的版本和未发布的版本 并保持。

该工具在这些活动中对您的支持程度如何? 该工具在这些活动中阻碍了多少?

我对'darcs'非常满意。

我尝试了很多修订控制系统。 我没有遇到过更好的事情。

这很简单,严格正确。

因为它很严谨,所以它是可靠和可预测的。 因为它很简单,所以很有帮助,不会妨碍你。

我的第二选择是git。

Git非常好,但不是那么严格,它强迫你下订单 在某些情况下,订单无关紧要。 Git更为人所知 一个更好的简历子弹。

http://en.wikipedia.org/wiki/Comparison_of_revision_control_software