16

可能重复:
有什么工具可以将 repo 从 Vault 迁移到 Subversion?

我目前正在审查从 SVN 迁移到 SourceGear Vault 的好处。有没有人得到建议或链接到两者之间的详细比较?请记住,我将不得不移动我当前的源代码控制系统,该系统在 SVN 的支持下非常有效

这是我迄今为止从自己的调查中发现的一些信息。

我已经在两者之间进行了一些时间测试,而 Vault 似乎执行大多数操作的速度要快得多。时间测试使用与存储库相同的服务器、相同的工作站客户端和相同的项目。

时间比较

  • SVN
添加/提交 12:30 获取最新版本 5:35 标记/标签 0:01 分支 N/A - 我认为 SVN 中不存在真正的分支

  • 保险库
添加/提交 4:45 获取最新版本 0:51 标记/标签 0:30 分支 3:23

(无法正确格式化)

我还找到了一个比较其他点的在线资源。这是我正在寻找的信息。

使用比较

  • 颠覆只是编辑/合并/提交。Vault 允许您进行编辑/合并/提交或签出/编辑/签入。

  • Vault 的外观和行为就像 VSS,这使得 VSS 用户的学习曲线实际上为零。

  • Vault 有一个 VS 插件,但它仅在您要在结帐模式下运行时才有效。

  • Subversion 拥有几乎所有你能想象到的操作系统的客户端。Vault 有一个用于 Windows 的 GUI 客户端和一个用于 Mono 的命令行客户端。

  • 两者都将支持远程工作,因为它们都使用 HTTP 作为传输(Subversion 使用扩展 DAV,Vault 使用 SOAP)。

  • Subversion 安装,尤其是带有 Apache 的安装,更加复杂。

  • Subversion 有很多第三方支持。保险柜只有几样东西。

我的问题

有没有人得到建议或链接到两者之间的详细比较?

4

13 回答 13

15

在“愤怒地”使用这两种方法后,我每天都会选择 Subversion(使用 TortoiseSVN)而不是 Vault。

当我从 Subversion 转到 Vault 时,我注意到了这一点

  • 无法在一个简单的步骤中获取我未更改的所有内容的最新信息,开箱即用
  • 不能轻易看到任何变化
  • 默认情况下,Vault 会尝试将我尚未签出的所有内容设为只读
  • 我必须检查一下
  • 加载(保险库客户端)真的很慢,而不是总是在资源管理器中
  • 客户端导航更尴尬 - 比使用资源管理器
  • 更容易与旧版本进行比较
  • 签入时输入注释时的拼写检查
  • 一切都变得更快更容易!

显然,其中一些取决于 Vault 的配置方式,但你明白了。

我最终编写了一堆脚本来自动化 Vault 不能做的事情,但即便如此,命令行版本可以做的事情也有限制。此外,没有记录 Vault API。

更新
请注意最初发布的日期。自从我最初写这篇文章以来,这两个产品都发生了变化并得到了极大的增强。

于 2008-10-08T12:27:24.667 回答
12

我在以前的工作中使用(和管理)Subversion 几年,而最近三年在我目前的工作中使用 Vault。在这一点上,我迫切希望摆脱 Vault 并回到 Subversion(或者可能是 git 或 Mercurial 之类的工具)。

我们在性能和可靠性方面遇到了很多问题(Vault 并不总是会提取已修改的文件,有时会坚持认为您没有修改过文件)但这可能归结为(长)我们存储库的历史以及我们过去如何处理分支。我会争辩说,如果它设计得更好,那么这些都不重要,但如果你没有用它做古怪的事情,那么也许你不会遇到我们遇到的问题。

也就是说,有一些我不能原谅的基本设计决策:

  • 工作文件夹模型(类似于 VSS)过于严格;如果我想在本地多个地方签出相同的代码,我应该能够
  • 合并工具爆炸
    • 每次我需要合并更改时,我都不需要经过七步向导
    • 无法挑选多个修订版进行合并
    • 在您提交更改之前,添加/删除的文件不会合并到您的工作文件夹中,这意味着您无法在签入之前验证一切是否正常
  • 不等同于“svn switch”;将签出的文件夹切换到存储库中的新位置会使 Vault 吓坏

归根结底,Vault 的灵活性远不如 Subversion,尽管缺乏灵活性确实意味着它可以更简单地使用。如果您有一个习惯于 VSS 的开发人员团队,并且您不会需要太多的源代码控制工具,那么 Vault 可能是一个不错的选择。不过,在习惯了 Subversion 的灵活性之后,我发现使用 Vault 是一种令人沮丧的练习。

于 2010-03-03T21:31:55.093 回答
10

我使用 Vault,所以我想更正您的功能列表中的一个错误:

Vault 有一个 VS 插件,但它仅在您要在结帐模式下运行时才有效。

不正确 - 我不确定它是在哪个版本中添加的,但您可以在 Visual Studio 中的 Edit|Merge|Commit 模式下运行 vault

我还要补充一点,Vault 使用 MS SQL Server 作为它的存储库 - 使备份变得容易。

于 2008-10-08T12:15:58.777 回答
8

Subversion 也有 VisualStudio 插件:

于 2008-10-08T12:11:06.133 回答
5

Source gear网站有一个比较。但是我不建议。如果您迁移到新的存储库,您希望查看分布式版本控制系统。

Monotone 、GitBazaar之类的软件在生产力方面确实提高了标准。

于 2008-10-08T12:21:17.377 回答
4

Subversion 允许您将文件标记为“必须锁定”,在这种情况下,签出(锁定)、签入(自动解锁提交)有效。AnkhSVN 将这一点可视化,就像 VSS 签入签出一样。

颠覆有:

  • TortoiseSVN for Windows 资源管理器
  • AnkhSVN,Visual Studio 的免费真实 SCC 提供程序。(尚未完成,但每天都在进步)
  • VisualSVN , TortoiseSVN 类似 Visual Studio 的集成(商业)
  • SvnBook,一个很棒的在线免费手册

Subversion 将在 1.6 或 1.7 中获得更高效的 HTTP 协议(​​正在进行中)。这可能使创建 IIS 插件成为可能。

请参阅Subversion 中有关分支和合并的 subversion 书籍

于 2008-10-08T12:13:22.167 回答
3

Subversion 也有锁。不过,我从来不需要它们。

于 2008-10-08T12:13:01.997 回答
3

Vault 内置而 Subversion 没有内置的一项功能是,可以将 Vault 配置为保留文件修改的时间戳。这是我真正可以从中受益的功能。作为一种解决方法,Subversion 确实允许配置将修改后的时间戳设置为提交时间,这对于我的大多数场景来说已经足够了。为了从中受益,我必须提交,然后删除我的工作副本,然后进行更新,以强制时间戳成为提交时间戳,以便我可以部署文件并使其时间戳与颠覆的时间戳相匹配。有人建议使用脚本或诸如此类的东西将修改后的时间戳存储在属性中,但我不知道是否有人成功地做到了这一点,如果是这样,我不知道这种解决方法有多可靠。

于 2010-03-18T08:26:25.893 回答
2

Subversion 有很多第三方支持。保险柜只有几样东西。

Subversion 肯定有 3rd 方支持,Vault 有 1st 方支持,因为你已经购买了它。根据我的经验,第一手信息(来自制造商)往往比分布在世界各地的 14 个论坛更好?虽然我们现在有 SO 所以这一点可能是静音的。:)

于 2008-10-08T12:00:40.040 回答
2

有许多与 subversion 集成的工具(错误跟踪器、持续集成)。在保险库的情况下,没有多少工具支持它。

于 2010-04-16T14:07:42.507 回答
1

SVN 具有真正的分支http://svnbook.red-bean.com/en/1.1/ch04.html,分支的处理方式与大多数源代码控制系统不同。

于 2008-10-08T12:14:25.207 回答
0

论坛很难拖网,但提供了许多线索,以充分利用人们所经历的所有试验和错误。

制造商的评论可能有偏见,并且不确定他们是否只是试图提供他们的解决方法。

于 2009-07-08T08:50:41.530 回答
0

Vault 在与 Visual Studio 无缝实现方面做得很好。

对于其他一切,这很糟糕。

“WebDAV”支持慢得令人痛苦——太慢了,我发现使用 Vault Client 结帐然后切换回 Dreamweaver 比尝试通过 WebDAV 在 Dreamweaver 中结帐更快。

于 2010-10-21T22:35:59.967 回答