任何将repo从Vault迁移到Subversion的工具?

时间:2008-09-11 20:26:50

标签: svn version-control sourcegear-vault version-control-migration

是否有任何工具可以促进从Sourcegear's Vault迁移到Subversion

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

要求:

  1. 仅限一次性迁移
  2. 完整的评论历史
  3. 可选

    1. 对标签/分支/标签的一些支持
    2. 相对快速。这可能需要几个小时而不是几天。
    3. 费用(如果有)
    4. 如果您可以分享与此过程相关的个人经验,则可获得积分。


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

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

      尽管如此:我们并没有完全放弃保险库。

5 个答案:

答案 0 :(得分:19)

我们正考虑从Vault迁移到git。我编写了vault2git转换器来处理历史记录并从* .sln,* .csproj文件中删除了保险库绑定。

一旦你有git repo,就有git2svn。

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

答案 1 :(得分:8)

如果您想要完整版本历史记录,您可能只想编写一个脚本来检查Vault中的每个版本,并使用对Subversion的注释进行检查。

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

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

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

  1. 查看保险库版本。
  2. 获取变更集的提交注释。
  3. 添加/删除文件到SVN repo
  4. 使用提交评论提交文件
  5. 使用下一个版本返回第一步

答案 2 :(得分:2)

我从未找到过从Vault转换为svn的简单方法。基本上我们采用了最新的分支和主干,并在svn开始了新的。老实说,我回去了两三个标签,只是因为。我将保险库数据库保留了六个月,我们再也不需要回到数据库了。因此,我假设您希望继续保存跟踪错误跟踪器的历史记录;与此同时,我们将优秀的错误列表转移到了新的跟踪器中,这样一定会让事情变得更加方便。如果我们继续使用相同的bug跟踪器,我认为我们将为新的repo启动它的新实例。祝你好运!

布雷特

答案 3 :(得分:0)

免。自我们开始使用以来,保险库用户许可证费用增加了两倍。

答案 4 :(得分:0)

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

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

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