12

我的公司在 Surround SCM 中有一个庞大的代码库,该代码库是几年前从 SourceSafe 迁移而来的。我们正在寻找更适合我们需求的东西,但将我们的历史从 Surround 中移除被证明是一个挑战。

谷歌搜索 git importers ,我发现了一个关于 custom importers 的好教程。似乎也支持 svn、perforce 和许多其他软件,但不支持 Surround。

只是拍摄快照并开始一个新的 git repo 会更好吗?或者是否值得编写一个脚本来获得 15 年以上的代码历史?

4

3 回答 3

6

发现自己处于这种确切的场景中,我自己编写了这样一个自定义导入器: export-surround-to-git

这种方法能够保存完整的历史、时间戳、作者、评论、分支、快照等。

此脚本已在有限数量的场景中进行了测试,并且到目前为止已被证明是成功的。虽然仍在进行中,但这可能是您正在寻找的。它是开源的——所以您可以随意对脚本进行改进!

于 2014-09-20T17:38:17.560 回答
4

在这种情况下,可以编写脚本,但不能获取所有历史记录。

我建议只导入:

  • 主要标签(对于超过一年的任何东西,或者任何您觉得舒服的时期,您都不需要全面检查,因为它太旧了)
  • 过去几年的所有标签(主要和次要)。

但是,迁移到 Git 还需要一项工作,以识别集中式环绕存储库中的模块或应用程序。
试图将所有这些数据导入到一个Git 存储库中是错误的,除非它是一个无法独立开发的庞大系统(如 Linux 内核)。

看:

于 2009-08-20T04:19:27.303 回答
4

Surround SCM 有一个 SDK。我用它把一个存储库从 CVS 带到了 Surround。多年后,一个团队正在考虑迁移到 SVN,并询问我是否可以迁移存储库。我想出了一个解决方案,其中包括遍历 Surround 存储库并创建一个中间内存数据库,然后对其进行处理。为了确保日期正确,我会重新设置计算机上的时钟。在我完全实施解决方案之前,我们决定为该团队保留一个浮动许可证,以便他们需要查看历史并计划让他们重新考虑其项目的整个组织。(作为一个仅供参考,两年过去了,该团队仍在使用环绕声。)

于 2012-11-14T18:57:11.867 回答