3

我们目前有一个胖 SourceSafe 数据库,其中包含十年的代码。我们正在寻找一种简单且稳定的方式将所有这些导入到新的 Clearcase/Jazz 环境中。

这样做的最佳方法是什么,是否有任何工具可以自动执行此操作?

4

5 回答 5

4

我知道这并不能直接回答您的问题,但是几年前我们从 VSS 迁移到 Perforce 时遇到了类似的问题。我们研究了迁移所有文件的历史记录的方法,但我们发现的任何解决方案都存在问题并且需要很长时间才能执行。

最后,我们只是决定将当前版本的代码导入 Perforce 作为基线,并将旧历史保留在 VSS 中。在早期,我们确实偶尔会参考 VSS,但几个月后我们就不需要了。

如果文件有问题,您只需要最后几个修订版就可以查看更改的内容和原因。因此,如果文件更改相当频繁,您很快就会在新存储库中建立有用的历史记录。如果文件没有改变,那么根据定义它是稳定的,你不需要历史记录。

如果您备份旧存储库,如果您真的需要挖掘保留历史记录,您可以随时返回它。

于 2009-05-15T13:54:05.017 回答
3

理论上,clearexport_ssafe是正确的工具:

clearexport_ssafe实用程序读取 Microsoft® Visual SourceSafe 当前项目中的文件和子项目,并生成一个数据文件,clearimport用于创建等效的 VOB 元素。

默认情况下会clearexport_ssafe导出 VisualSourceSafe当前项目中的文件和子项目,但不会导出子项目中包含的任何文件。要导出所有子项目中的所有文件,请指定 –r 选项。

在实践中,我所做的迁移(虽然不是从 VSS)涉及将一些最近的标签,然后是 HEAD 导入 ClearCase。

这意味着我用于任何导入(来自任何其他 VCS)的主要工具是clearfsimport
您可能会丢失一些元数据(例如版本的作者和标签),但至少它与源无关,并且由于您的大量导入仅涉及来自源的少数标签,因此您很快就会获得可操作的VOB。

于 2009-05-15T14:34:52.423 回答
2

来自 IBM 的网站:

http://www-01.ibm.com/support/docview.wss?ratlid=cctocbody&rs=984&uid=swg21222507

还有这个:

http://www.cmcrossroads.com/component/option,com_fireboard/func,view/id,63051/catid,31/Itemid,593/

但是,ChrisF 的回答与我建议的相同。

考虑到迁移历史的“好处”,所涉及的努力通常是不值得的。

我只会对分支的当前“提示”进行快照,并将它们放在您的新版本控制系统下。

在我的职业生涯中,我至少经历了 3 次这个练习。一次转换为 Perforce,两次转换为 SVN。

我想我记得我们做了一些部分历史导入,但后来因为我们需要的信息是其他形式的,所以把它全部删除了。实际的存储库更改历史还不足以经历痛苦。我们确实将数据库保留了一年左右,以防有人想查看。我不记得有人抱怨它。

(我也很好奇为什么有人会选择 ClearCase 而不是其他的——我猜是为了与其他 Rational/IBM 东西集成)

编辑

我会问 ClearCase/IBM。他们将拥有最好的最新信息。

于 2009-05-15T13:57:48.520 回答
1

我实际上经历了 VSS 到 Clear Case 的转换。Rational 有一个我们运行的转换工具。在我们的 VSS 数据库上完成可能需要 2 年(可能是 3 年,但不接近您的 10 年),这需要 FOREVER(2-3 天,但见下文)。但据我回忆,它起作用了。它保留了历史和标签。

缓慢的问题可能是由于我们新的源代码控制服务器中的 RAID 控制器不稳定。导入工作正常,但 Clear Case 会在工作几天后检测到数据中的损坏(通常是在标签之后)。在几次重新导入、固件更新和新服务器之后,一切都解决了。

我仍然打算给导入一个周末的时间来运行。试着找一个偶尔可以远程检查的人来检查它的进展。

附带说明一下,我还完成了到 Perforce 和 TFS 的 VSS 转换。一般来说,我建议尝试一下导入工具。如果他们工作,那就太好了。如果他们让您感到悲伤,请按照其他人的建议进行操作:只需将所有文件添加为新文件即可。

于 2009-05-15T14:35:40.613 回答
1

我会采用最重要的标签并通过'clearfsimport'将它们导入ClearCase。

于 2009-12-31T15:42:06.310 回答