有什么工具可以将回购从Vault迁移到Subversion?

时间:2020-03-05 18:51:47  来源:igfitidea点击:

是否有任何工具可帮助从Sourcegear的Vault迁移到Subversion?

我真的希望有一个现有的工具或者项目(我会买!)。

要求:

  • 仅一次迁移
  • 完整的历史记录和评论

选修的:

  • 对标签/分支/标签的某些支持
  • 比较快。可能要花几个小时,而不是几天。
  • 费用(如果有)

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

我想要这样做的原因之一是因为我们在Vault和Subversion之间分散了许多项目(我们最终远离了SourceSafe)。在某些情况下,能够将特定客户的存储库整合到SVN会很有帮助。

另外,SVN在第三方工具中得到更好的支持。例如,哈德森和雷德明。

再次重申:我们并未完全放弃保险库。

解决方案

回答

我从来没有找到从Vault转换为svn的简便方法。基本上,我们采用了最新的分支机构和主干,并在svn中开始了新的工作。老实说,我回去了两三个标签,只是因为。我将保管库数据库保留了六个月,而我们再也不需要返回该数据库了。因此,我假设我们想继承历史记录以进行Bug跟踪器关联。同时,我们将未解决的错误列表转移到了新的跟踪器中,从而使事情变得更加便捷。如果我们使用相同的错误跟踪器,我想我们应该为新的仓库启动一个新的实例。祝你好运!

布雷特

回答

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

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

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

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

  • 从Vault中检出版本。
  • 获取更改集的提交注释。
  • 将文件添加/删除到SVN存储库
  • 使用提交注释提交文件
  • 返回下一个版本的第一步

回答

自由。自从我们执行此操作以来,保管库用户许可证成本已增加了两倍。

回答

我们也在考虑迁移。一个原因是成本,但另一个原因是Vault的提交注释未使用有效的xml(或者任何其他格式),因此特殊字符使我们的自动CCNet构建系统失败(例如,项目符号是其中之一,特别是给我们造成了问题) 。一种解决方法是A)要求我们的开发人员不要使用这些特殊的"无效"字符(ASCII 32 126范围之外的字符)和B)手动输入并重新提交带有"有效"注释的代码。这看起来似乎没什么大不了,但是不允许这些字符阻止将错误和其他注释轻松复制/粘贴到提交注释中。这会使人放慢脚步,任何减少人流和生产力并造成挫败感的因素都需要减少或者消除。

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

...但是我认为我们可以编写提交脚本(如Joshua在此线程开始时所建议的那样),或者更有可能只是提交最新的几个修订版本,并在一段时间后将Vault仓库留给历史记录,等等。我们是清理和重构当前代码和层次结构的好机会。

保罗

回答

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

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

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