Visual Studio 2010中的源代码控制?

45

在Stack Overflow、谷歌和MSDN论坛上搜索后,我发现对于一个看起来很显然的问题,甚至是一个愚蠢的问题,信息太少,让我感到沮丧。

我需要在Visual Studio 2010 Professional中使用源代码控制。我没有单独的Team Foundation Server 2010。有些人提到了SourceSafe?说实话,我还没有在Visual Studio 2010里看到过任何SourceSafe。

有哪些替代品(最好是免费)可以用于Visual Studio 2010的源代码控制?或者它已经集成在Visual Studio 2010中了,只是我太糊涂了,错过了它?

更新1:谢谢大家,我会选择SVN,特别是为Visual Studio 2010设计的AnkhSVN

更新3/23/2011:距离我提出这个问题已经快一年了。我强烈建议使用MercurialGit而不是Subversion。因此,对于那些寻找Visual Studio 2010版本控制系统的人,不要再寻找了,直接从Visual Studio扩展库中下载Git或Mercurial扩展程序。

更新5/16/2013: 我现在强烈鼓励您使用Git而不是MercurialTFSSVN。看看CodeSchool的在浏览器中尝试GitHub,了解它有多么棒!

  • Visual Studio Tools for Git -这是一个用于团队资源管理器的扩展,可提供Git源代码控制集成。它可以与本地Git仓库进行集成,并提供用于处理远程仓库的工具。

  • 图片描述


    3
    谢谢您最近的建议,对于像我这样刚开始使用源代码控制系统的人非常有用。+1 - Arman
    非常感谢您更新问题。您仍然推荐使用GIT进行源代码控制吗? - Shyamal Parikh
    5个回答

    17

    参考:带有Visual Studio插件的源代码控制系统列表


    Visual Studio仅是一个集成开发环境,您可以使用任何您想要的源代码控制解决方案。特别是任何开源的源代码控制解决方案,如git、mercurial(hg)或subversion(svn)。还有商业产品,如Perforce或SourceGear Vault。请参见此处了解相当全面的列表,并通过谷歌获取更多信息。

    您可以找到与任何源代码控制集成的Visual Studio插件。在这方面,特别是subversion提供丰富的开源插件。商业插件通常也带有此类集成功能。

    如果您没有使用需要明确检出文件才能编辑它们的源代码控制(例如VSS或TFS),则IDE集成甚至不是必要的。我个人更喜欢从IDE外部使用git或subversion。


    而且,请尽量远离Visual SourceSafe


    2
    @Andrew Flanagan:我相信这里没有恶意。VSS中没有邪恶,只有懒惰和愚蠢。 - Tomek Szpakowicz
    Git让我克服了对命令行的恐惧,我很感激它,同时在开源社区也非常受欢迎。如果你曾经接手过Visual Studio之外的工作,Git是一个不错的选择。而appharbor.com则是推动.NET Web应用程序开发的绝佳平台。 - Alex

    7
    我正在使用Ankh SVNSubversion在服务器上,这对我来说很有效。但是,现在MercurialGit比SVN更受欢迎,而且还有Visual HG,这是一个针对Visual Studio的Mercurial插件。 编辑:与此同时,我转换到了Mercurial(Tortoise HG加上Visual HG),并且再也没有回头过。如果你从Subversion转过来,需要花费几个小时来适应Mercurial,但之后它确实是轻松愉快的。即使您不需要分布式版本控制系统,Mercurial仍然具有许多漂亮的功能,在Tortoise SVN中不可用。此外,它似乎更加稳定,特别是在分支方面。

    SO上有一篇惊人的帖子比较了Git和SVN。我会坚持使用SVN,因为它完全满足我的需求!;) - Sahat Yalkabov
    @Rihanna.Rain:我也是,但上次在SO上推荐SVN时遭到了很多批评,所以我想最好也指出其他选择。 - Adrian Grigore
    1
    谢谢你提供这个信息 - 直到现在我还不知道 Visual Studio 和 Mercurial 之间有任何集成。这可能正是我需要的! - Mark Ransom

    2
    让我向Visual Studio 2010集成的SCM清单中再添加一个选项:Plastic SCM。你可以在这里查看它的外观
    有一个社区版可用。

    1

    我并没有“建议”使用Subversion。我只是展示了一些流行替代品的指针。实际上,如果我必须推荐什么东西,那就是Git或Mercurial(取决于你的口味,我更喜欢Git)。Subversion相对简单和成熟(因此有很多好的工具,包括VS插件和非常“可爱”的TortoiseSVN)。但我不喜欢它,因为它不能区分分支和文件夹,也不能进行合并。虽然不像TFS那样糟糕,但仍然... - Tomek Szpakowicz

    -2

    我在项目中使用过Subversion和Mecurial,这两个都让我想起了那个备受诟病(有充分理由)的Visual Source Safe。它们都可以“工作”,但都显示出它们Unix程序员的根源(无意冒犯),带有晦涩难懂的错误信息和荒谬的黑魔法技巧。源代码控制应该是简单、可靠且不干扰的。SNV和Mecurial都不符合要求。如果没有任何问题,Mecurial更容易使用——这大约占80%的时间。

    如果您是一个单独工作的开发人员,我建议您使用Mercurial。

    以下是我讨厌它们的原因之一:

    推送到Z:\Repos\SupplierAdminWebRepo 正在搜索更改 分支'default'上的新远程头 [错误:中止:推送创建了新的远程头9cfbad6249a9!] 新的远程头9cfbad6249a9 [错误:(你忘记合并了吗?使用push -f来强制)]

    [操作完成。退出代码:255]


    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接