我们应该使用什么源代码控制

时间:2009-05-06 13:59:47

标签: version-control

我正在寻找一个好的源控制解决方案。以下是要求:

  1. 必须拥有GUI或具有可用的GUI插件。
  2. 必须是免费的。
  3. 必须使用HTTP。
  4. 您会选择哪种源代码控制?

    背景

    我们的.Net开发团队是一家大型母公司的一部分。我们正在收购VS团队系统,但是大公司的官僚主义行动缓慢,可能需要几个月才能启动并运行Team System服务器。与此同时,我们有一个大型项目将外包给印度的供应商。在过去,我们团队的流程是这样的:1)指定要求,2)让印度团队创建解决方案,3)在一个月后从供应商处收回解决方案。

    我们正在寻找一种更加严谨的方法,团队系统是我们的长期解决方案,但是我想现在就使用一些东西而不是什么。

    以下是我的一些想法:

    1. 由于稳定性问题,Source Safe是不行的。
    2. 易用性比高级功能更重要,比如分支,我真的希望它使用GUI而不是命令行。
    3. HTTP访问是必须的,因为开发团队将是远程的。
    4. 其他信息作为目前为止反馈的后续行动

      我们需要一个免费的解决方案,不是因为我们负担不起,而是因为公司的企业采购政策会延迟实现。免费使我们可以随时安装。我想如果它足够便宜,我可以自掏腰包,但它必须相当便宜。

      最终

      可悲的是,我们最终没有使用任何建议。我们最终获得了TFS许可证,但是我们预计在明年之前不会有使用服务器的许可。在此期间,离岸团队将zip文件上传到ftp服务器上。 Ugggghh!为什么说服大公司可以使用非标准解决方案(如GIT)而不是等待几个月(或几年),因为他们试图决定是否购买(在这种情况下是TFS)值得。

18 个答案:

答案 0 :(得分:25)

我建议SubversionTortoiseSVN。甚至Subversion的documentation都是免费的。

编辑添加: 我还强烈建议VisualSVN Server设置您的SVN存储库。设置非常简单,它非常麻烦,我不得不去看看它的名字,因为我从初始设置开始就不需要触摸它。

答案 1 :(得分:10)

考虑分布式系统:darcsgitmercurial。他们都有他们的追随者,但在操作上他们非常相似。 darc可能需要很长时间才能构建,因为它是用Haskell编写的,而你最终需要先构建Haskell。 Mercurial是基于python的,易于破解和扩展。当然git是用于Linux的,非常广泛可用的,很多工具。

我认为,

Subversion几乎是现代SCM的基线;它也是一个不错的选择,但它确实迫使你拥有一个固定的中央服务器;无论是你,还是你的印度同事,都必须检查并承诺长管。

答案 2 :(得分:4)

Subversion(SVN)显然是一个受欢迎的选择。它现在也很常用(谷歌代码,Sourceforge等),所以应该有很多关于它的使用的文档。 Git也是一个不错的选择,但缺乏GUI界面使得它不能很好地满足您的要求。

我假设您使用的是.NET,主要是在Windows环境中开发。查看VisualSVN产品。他们制作了一个伟大的(免费)服务器产品,用于在Windows环境中实际运行完整的svn服务器(它支持SSL,组/用户身份验证,包括Active Directory支持)。

他们还提供了一个Visual Studio插件,虽然它不是免费的(尽管49美元/开发人员非常合理)。 AnkhSvn是另一个Visual Studio客户端插件选项。它不是很好,但它是免费的。

http://www.visualsvn.com/server/ - 免费的Windows SVN服务器

http://www.visualsvn.com/visualsvn/ - Visual Studio客户端插件

http://ankhsvn.open.collab.net/ - 免费的Visual Studio客户端插件

所以,我认为使用VisualSVN产品的Subversion将以非常合理的价格为您提供最佳的windows / gui集成。

答案 3 :(得分:2)

根据我的经验,SVN在HTTP上非常糟糕。如果你的回购具有任何重要的尺寸,特别是那里塞满了跨大西洋往返,你会想要拔掉你的头发。就个人而言,我会选择Mercurial。

谷歌最近在Git和Mercurial上做了一些research。 Mercurial最大的优势在于它在HTTP方面表现非常出色。

TortoiseHg虽然不如TortoiseSVN那么成熟,但它是一个非常可靠的Windows GUI。虽然您提到您对分支和合并不是很感兴趣,但这些是所有DVCS中的常见活动。幸运的是,因为它们很常见,所以它们在用户界面和整体上相对无痛的活动中得到很好的支持。

答案 4 :(得分:1)

给Mercurial一个机会。 BitBucket有免费帐户,你可以玩。我已经写了更多关于我使用它的原因here

答案 5 :(得分:1)

Team Foundation Server非常易于使用,并且很容易从源安全背景(共享命令的通用术语)开始。然而,由于部分开发工作在印度,他们可能更了解Subversion。

如果你使用Subversion,我会看VisualSVN。它非常棒,使用简单,设置快速(TFS设置有点复杂)。 VisualSVN提供一个IDE插件(50美元)和一个服务器对应物,用于为Windows机器启动Subversion(免费)

答案 6 :(得分:1)

查看Subversion:http://subversion.tigris.org/

还有GUI插件和VS .NET。 http://tortoisesvn.tigris.org/ http://ankhsvn.open.collab.net/

所有开源&免费。

答案 7 :(得分:1)

Mercurial非常棒且很容易。

答案 8 :(得分:1)

我的推荐是Subversion + TortoiseSVN(对于资源管理器集成)+ AnkhSVN(与Visual Studio集成)。

我认为你不应该使用任何distributet版本控制系统,因为在那之后你将不得不回到集中的那个可能会很痛苦。

答案 9 :(得分:1)

如上所述,SVN和Tortoise是要走的路。

我还获得了可视SVN(http://www.visualsvn.com/)的许可证,它不是免费的,但它确实很好,它使用Tortoise svn并在IDE中提供它的功能。

答案 10 :(得分:0)

为.Net开发设置Subversion变得更容易了。你可以从installing Visual SVN Server开始。这将在Windows机器上安装Subversion服务器,将通过设置存储库,身份验证等工作。

然后,对于Visual Studio与Subversion的集成,您可以尝试VisualSVN,它不是免费的,但非常值得许可。但如果您的预算不允许,Ankhsvn也可以正常使用,我每天都会使用它。

答案 11 :(得分:0)

SVN的另一票。
对于Windows上的轻量级SVN服务器,请查看sliksvn。它不进行http源浏览,但是比小组的基于apache的服务器更小,更容易设置。

答案 12 :(得分:0)

你有没有尝试过解开(http://unfuddle.com/)。满足您的所有要求。

答案 13 :(得分:0)

如果您确定要参加Team System,那么我相信您可以使用180天的试用版。这样,你就不用换了。

答案 14 :(得分:0)

几个月前我不得不做出类似的决定。我很喜欢SVN,但是对于管理来说缺乏GUI对我的团队来说是个大问题。 TFS是理想的,但非常昂贵。

我们决定中途见面并获得许可SourceGear Vault。不幸的是,它不符合你的“免费”要求。虽然我发现它的comparison with SVN很有趣。

答案 15 :(得分:0)

我会建议您的大多数团队成员拥有最丰富经验的源代码控制,或者您的团队成员是您的专家。

在我看来,除了无休止的“git比Subversion更好比CVS更好” - 讨论我不认为它们之间的区别是重要的。

让一个真正知道如何使用您决定使用的系统的人更重要。

答案 16 :(得分:0)

我是第二个SVN和TortoiseSVN。

我离开了CVS和WinCVS,我很满意这个设置。

答案 17 :(得分:0)

您是否尝试过SVN并使用TortoiseSVN进行Shell扩展?