决定源控制软件

时间:2009-06-01 16:45:40

标签: visual-studio-2008 svn version-control perforce

我目前在家里和计算机上的计算机上本地使用Perforce,我很满意。但我想与我的同事分享SCM Love,我们即将(可能)添加第三个开发人员。随着第三人的加入,我们无法继续使用Perforce的免费版本。我并不反对付款,但900美元的座位对于我工作的公司来说太陡了。

现在,我知道在StackOverflow上有一个强大的SVN跟随者,我尊重这一点。但是当我以前调查它时,我并不关心某些方面。例如在Perforce中,如果我尝试签入需要同步或合并的文件,它会在签入之前提示我这样做,并且我得到一个可视工具来控制合并。 IIRC,在SVN中,当您签入文件时,它会自动为您合并,这可能不会产生与您期望的完全相同的后果。不过,我承认我可能会错误地记住这一点。

另外,我似乎记得SVN是基于文件夹而不是基于文件的?在我目前的工作环境中,这可能非常可怕,我继承了一些没有文件夹结构的应用程序。

当然,它绝对必须插件到Visual Studio 2008.

鉴于这些要求,您是否仍会推荐SVN,还是会推荐其他产品?

9 个答案:

答案 0 :(得分:8)

在Subversion中,提交时不会在本地进行合并 - 在更新时本地合并。 (提交时有一个服务器端合并,但这不是一回事。)但是,在提交之前必须保持最新状态。这是一个微妙但重要的区别。

Subversion会在对变更充满信心时为您合并,但会留下适当的冲突,以便手动合并。我没有看到很多自动执行的错误合并。

是的,如果你需要VS支持(我建议VisualSVN,我个人 - 不是免费的,但非常便宜),我仍然会推荐Subversion。我喜欢Git,但它没有我所知道的良好的VS集成。

答案 1 :(得分:2)

我是Perforce的长期用户并且非常喜欢它,但我可以理解,对于小公司来说,许可费用可能有点过多。

我认为,使用Perforce的主要原因是:

  • 成熟的合并跟踪。 SVN尚未到位。
  • 精湛的支持团队(我似乎总能在一小时左右收到回复)
  • 速度

话虽如此,我认为如果你愿意在上述领域中略微降低你的期望,SVN将是一个简单的方法,至少在目前。我可能会因为那个陈述而受到抨击,但就这样吧。您只需要决定您愿意支付的时间与金钱 - 如果您是分支和合并的重度用户,那么Perforce分支/合并功能可能会得到回报。

如果您正在开发OSS,另外需要考虑的是Perforce实际上为开源开发提供免费许可。

答案 2 :(得分:1)

  

另外,我似乎记得SVN是基于文件夹而不是基于文件的?

svn为每个文件夹存储.svn存储库,但您可以在文件夹中添加单个文件。它还有基于扩展名自动查找/忽略文件的良好规则。

Ankhsvn做视觉工作室集成,我个人喜欢tortoiseSVN与资源管理器集成,但这取决于你的工作方式。

PS。在服务器端,您可以在单个文件或BSD类型数据库中进行SVN存储更改,检查最适合您的文档,但这不会影响客户端。

答案 3 :(得分:1)

参见讨论git + visual studio的先前帖子: Using Git with Visual Studio

答案 4 :(得分:1)

  

我目前在家里和计算机上的计算机上本地使用Perforce,我很满意

看起来像DVCS(分布式版本控制)。 Git或Mercurial可以最终提供帮助,因为它们可以与开发人员的数量很好地扩展。只需定义一个中央存储库。 Git实际上可以work with VisualStudio

  

在Perforce中,如果我尝试签入需要同步或合并的文件,它会在签入之前提示我这样做

在同一分支上处理同一文件时就是这样。使用DVCS工具,只要您想要合并当前分支(rebase)中的其他作品,或者只是将您的工作合并到公共分支(合并),您就可以创建本地分支和控件。

因此,在这种情况下,我建议使用DVCS工具而不是中央存储库工具。

答案 5 :(得分:1)

我们是一家开发商,在放弃它之前使用了MS sourcesafe很长一段时间,因为当你超出一定规模时会出现很多问题。

现在我们正在使用svn。我还没有看到太多不正确的自动合并,但是如果在两个位置都更改了文件的相同部分并且允许您手动合并,则会检测到冲突。我很想知道您是否可以停止自动合并并完全控制。

合并解析窗口非常好,它允许您立即手动合并。

我们在vs 2008上使用Ankhsvn,有时候使用tovise svn。我们测试了视觉svn,但发现Ankhsvn足够好了(虽然我不确定它是否支持文件重命名和合并历史!)

答案 6 :(得分:0)

SourceGear Vault与VS 2008完美整合,并完成您所要求的一切。

每个座位249美元(可用批量折扣),如果文件需要合并,它会提示您。此外,它还有一个很棒的Diff / Merge工具。

对于单个用户来说是免费的,所以请试一试,看看它是否符合您的要求。

答案 7 :(得分:0)

我同意Jon Skeet。 (不是每个人?!) - ; - )

SVN仍然是您的最佳选择。您可以使用TortoiseSVN之类的可视化工具来处理与SVN的交互,如果您想从浏览器访问/浏览回购,则可以选择ViewVC等存储库Web客户端。

SVN内置了一堆可扩展性。您可以将任何类型的自定义操作添加到任何预提交或提交后事件(以及更多)。

Jon提到的Visual SVN或Ankh SVN都是Visual Studio集成的可行解决方案。

答案 8 :(得分:0)