4

我目前在家里的电脑和工作的电脑上本地使用 Perforce,我对此非常满意。但我想与我的同事分享 SCM 之爱,我们即将(可能)添加第三位开发人员。由于包含第三人,我们无法继续使用 Perforce 的免费版本。我不反对付钱,但 900 美元的座位对我工作的公司来说太贵了。

现在,我知道在 StackOverflow 上有大量 SVN 的追随者,我尊重这一点。但是当我以前研究它时,我并不关心某些方面。例如在 Perforce 中,如果我尝试签入需要同步或合并的文件,它会在签入之前提示我这样做,并且我会获得一个可视化工具来控制合并。IIRC,在 SVN 中,当您签入文件时,它会自动为您合并,这可能与您期望的结果不太一样。不过,我坦率地承认我可能记错了。

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

当然,它绝对必须插入到 Visual Studio 2008 中。

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

4

9 回答 9

8

在 Subversion 中,提交时不会在本地合并 - 更新时会在本地合并。(提交时有一个服务器端合并,但这不是一回事。)但是,您必须先保持最新,然后才能提交。这是一个微妙但重要的区别。

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

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

于 2009-06-01T16:51:03.683 回答
2

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

在我看来,使用 Perforce 的主要原因是:

  • 成熟的合并跟踪。SVN 还没有完全实现。
  • 一流的支持团队(我似乎总是在一个小时左右得到回复)
  • 速度。

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

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

于 2009-06-03T16:54:50.983 回答
1

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

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

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

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

于 2009-06-01T16:55:36.673 回答
1

有关 git + Visual Studio 的讨论,请参见先前的线程: Using Git with Visual Studio

于 2009-06-01T16:55:42.570 回答
1

我目前在家里的电脑和工作的电脑上本地使用 Perforce,我对此非常满意

对我来说看起来像 DVCS(分布式版本控制)。Git 或 Mercurial 肯定会有所帮助,因为它们会随着开发人员的数量很好地扩展。只需定义一个中央存储库。Git 实际上可以与 VisualStudio 一起工作

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

在同一分支上处理同一文件时也是如此。使用 DVCS 工具,您可以创建本地分支并控制何时要合并当前分支中的其他工作(变基)或只是将您的工作合并到一个公共分支(合并)。

因此,在这种情况下,我会推荐 DVCS 工具而不是中央存储库工具。

于 2009-06-01T17:01:38.367 回答
1

我们是一家开发商店,使用 MS sourcesafe 很长一段时间,然后因为超过一定大小时出现很多问题而放弃它。

现在我们只使用svn。我还没有看到太多不正确的自动合并,但是如果文件的同一部分在两个地方都发生了更改,它会检测到冲突并让您手动合并。我很想知道您是否可以停止自动合并并完全控制。

合并分辨率窗口非常好,它可以让您立即手动合并。

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

于 2009-06-01T17:02:46.053 回答
0

SourceGear Vault与 VS 2008 完美集成,满足您的所有要求。

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

它对单个用户免费,因此请试一试,看看它是否符合您的要求。

于 2009-06-01T16:54:41.867 回答
0

我同意乔恩·斯基特的观点。(不是每个人吗?!) - ;-)

SVN 仍然是您的绝佳选择。你可以使用像TortoiseSVN这样的可视化工具来处理你与 SVN 的交互,如果你想从浏览器访问/浏览 repos ,包括像ViewVC这样的存储库 Web 客户端是一个不错的选择。

SVN 还内置了一堆可扩展性。您可以将各种自定义操作添加到任何 pre-commit 或 post-commit 事件(以及更多)。

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

于 2009-06-01T16:58:32.910 回答
0

Re-Perfoce vs SVN:如果你想拥有 Perforce 的合并跟踪功能以及 Subversion 的所有其他功能,Mercurial 看起来相当不错。

于 2009-09-11T14:01:34.567 回答