16

是否有任何工具可以促进从Sourcegear 的 VaultSubversion的迁移?

我真的更喜欢现有的工具或项目(我会买!)。

要求:

  1. 仅限一次性迁移
  2. 带有评论的完整历史记录

选修的:

  1. 对标签/分支/标签的一些支持
  2. 比较快。它可能需要几个小时,但不是几天。
  3. 费用(如果有)

如果您可以分享与此过程相关的个人经验,则可以加分。


我想这样做的原因之一是因为我们有很多项目分布在 Vault 和 Subversion 之间(我们终于远离了 sourcesafe)。在某些情况下,能够将特定客户的回购合并到 SVN 会很有帮助。

此外,SVN 在第三方工具中得到更好的支持。例如,HudsonRedmine

不过,再次重申:我们并没有完全放弃保险库。

4

5 回答 5

19

我们正在考虑从 vault 迁移到 git。我编写了 vault2git 转换器,它负责处理历史并从 *.sln、*.csproj 文件中删除 vault 绑定。

一旦你有了 git repo,就有了 git2svn。

我知道这听起来像是绕圈子,但它可能比从头开始编写 vault2svn 更快。

于 2009-11-30T18:45:14.853 回答
8

如果您想要完整的版本历史记录,您可能只想编写一个脚本,从 Vault 中检出每个版本,并将其与 Subversion 的注释一起检入。

https://www.mercurial-scm.org/wiki/GenericConversion就是一个很好的例子

根据我在 Vault 网站上看到的文档,查看命令行 GETVERSION。

使用您最喜欢的脚本语言...实现以下过程:

  1. 从 Vault 中查看一个版本。
  2. 获取变更集的提交评论。
  3. 将文件添加/删除到 SVN 存储库
  4. 使用提交注释提交文件
  5. 使用下一个版本返回第一步
于 2008-09-11T23:43:08.893 回答
2

我从来没有找到从 Vault 转换为 svn 的简单方法。基本上,我们采用了最新的分支和主干,并在 svn 中开始了新的工作。老实说,我退了两三个标签,只是因为。我将保管库数据库保存了六个月,我们再也不需要回到它那里获取数据。因此,我假设您希望将您的历史发扬光大,以配合错误跟踪器;同时,我们将未解决的错误列表转移到了一个新的跟踪器中,这无疑让事情变得更加方便。如果我们使用相同的错误跟踪器,我想我们会为新的 repo 启动一个新的实例。祝你好运!

布雷特

于 2008-09-11T21:00:07.913 回答
0

自由。自从我们开始使用以来,Vault 用户许可证成本增加了两倍。

于 2009-04-16T14:44:30.043 回答
0

我们也在考虑迁移。一个原因是成本,但另一个原因是 Vault 没有使用有效的 xml(或任何)作为其提交注释,因此特殊字符无法通过我们的自动 CCNet 构建系统(例如,项目符号字符就是其中之一,并且特别给我们带来了问题) . 解决此问题的方法是 A) 要求我们的开发人员不要使用这些特殊的“无效”字符(ASCII 32 - 126 范围之外的字符)和 B) 手动进入并重新提交带有“有效”的代码评论。这可能看起来没什么大不了的,但是不允许这些字符会阻止将错误和其他评论轻松复制/粘贴到提交评论中。这会减慢人们的速度,任何阻碍流动和生产力并造成挫败感的东西都需要减少或消除。

根据我的研究,似乎没有办法直接从 Vault 迁移到 SVN。也许可以使用另一个版本控制系统作为迁移中间步骤:Vault --> OtherSourceControlProduct --> SVN

...但我认为我们要么编写提交脚本(正如 Joshua 在本线程开头所建议的那样),要么 - 更有可能 - 只提交最后几个修订版并将 Vault repos 保留一段时间以获取历史记录等。这个实际上给了我们一个很好的机会来清理和重构我们当前的代码和层次结构。

保罗

于 2009-04-16T21:30:26.187 回答