2

有谁知道将 Starteam (2006v2) 迁移到 SVN 的 Polarion 替代方案?仅我们的源就有 10GB,不包括所有的修订历史。每当我运行 Polarion svnimporter 时,我都会收到“Java 内存不足”异常。我不确定是什么导致了所有内存使用,但我不确定从这里去哪里。任何建议(允许我至少保留一些历史)将不胜感激。

谢谢!

4

4 回答 4

4

我正在将一个中型项目从 StarTeam 迁移到 Subversion。由于 VM 内存不足,我也不得不处理许多 JVM 崩溃。他们从 StarTeam 使用的 Polarion 库/工具或 StarTeam.jar 文件似乎存在大量内存泄漏。无论如何,通过执行以下操作,我似乎已经克服了它(手指交叉):

java -Xmx2048m -cp svnimporter.jar:starteam80.jar org.polarion.svnimporter.main.Main full config.properties

现在它已经在大约 11,000 个文件上运行了大约 3 天......而且只完成了一半......所以至少可以说这是一个缓慢的过程。

我没有找到其他工具......祝你好运。

于 2011-12-02T15:13:29.303 回答
2

大约十年前,我们进行了 StarTeam 到 ClearCase 的迁移。我受雇编写一个程序来进行迁移。不幸的是,StarTeam 的命令行界面极其有限,并且没有真正的 API。几乎所有 StarTeam 命令都必须以 50 个字符的登录字符串作为前缀。也许这在过去十年中发生了变化。

您是否尝试过增加 Java 的内存分配?默认情况下,JVM 只会使用 64Mb 的内存。许多 Java 应用程序需要更多。在 Java 命令中,您可以给它-Xmx256m提供 256 兆字节的内存。我看到 Polarion 的软件是基于 Java 的,但我最终没有下载它,因为他们想要我的姓名和电子邮件。(这不值得麻烦。)但是,我认为有一个批处理脚本或 shell 脚本可以执行该程序。

是否可以一次只做一个或两个目录/模块?许多站点使用多个 Subversion 存储库——每个模块一个存储库——而不是一个大型存储库用于所有模块。此外,如果您真正想要的话,您可以随时将所有 Subversion 存储库转储并加载到一个大存储库中。更多的肘部油脂,但如果它有效,你可以保留你的整个历史。

我们最终做的只是转换历史的几个标记点,而不是全部。我们的理论是,如果您真的需要详细的历史记录,您可以返回 StarTeam 存储库。

所发生的事情改变了我对这些事情的看法:事实是,我们无论如何也无法构建很多旧东西,因为它取决于 StarTeam 中的方式,所以即使我们保留了历史,它也没有对我们有用非常好。而且,它还让我们有机会重组一切并丢弃过时的东西——如果我们真的能保留历史,我们可能不会这样做。

而且,最终,无论如何,没有人错过历史。StarTeam 存储库使用 SQLServer 来维护存储库数据库。该数据库在转换后不久就崩溃了。直到将近一年后,我们才知道这件事。我只是想看看 StarTeam 是否仍在工作,然后发现了问题。

所以,看看增加 Java 进程的内存是否有帮助,或者看看你是否可以零碎地进行转换。如果这没有帮助,您可能想问问自己历史是否真的需要过去,或者如果您只做一些标记点和活动分支的提示是否可以。

如果有人真的需要历史,可以回到旧的 StarTeam 系统。

我希望我能给你更多帮助,但我自己在 StarTeam 上的运气并不好。


回复

StarTeam CLI 有那么糟糕吗?应该可以编写一个简单的脚本来列出修订,然后将它们从starteam中检出并以大循环或其他方式进入SVN,不是吗?

你会这么想的。毕竟,我已经设法为 ClearCase、CVS、Subversion 编写了我自己的转换例程,等等。然而,当我十年前这样做时,StarTeam CLI 很糟糕,文档也很糟糕,而 Borland(拥有 StarTeam)根本没有帮助。

命令行工具没有登录。每个命令必须提供凭据,这意味着在每个命令中输入 50 个左右的字符串。这也意味着 CLI 对您实际查看的内容一无所知。你不能做一个svn info类似的命令。你只是检查了一堆东西。

无法通过命令行查看详细的历史记录。例如,没有办法像使用 Subversion 甚至 CVS 那样找出所有的修订,并一次检查出一个。

有一个 C API,但它也相当有限。我看到现在有一​​个可能是 Polarion 正在使用的 Java API。

我在想也许有一个 StarTeam to CVS 包可能会有所帮助。转换为 CVS 后,您可以将其转换为 Subversion。唉,除了在互联网世界的荒凉中问同样问题的几个灵魂之外,我找不到关于这个主题的任何信息。

我尝试下载 API 信息或命令行文档以查看是否可以解决任何问题,但网站已关闭。

对不起,我只能说我尝试过但失败了

于 2011-09-23T18:52:26.137 回答
0

我不知道starteam,但通常您可以从您的源版本控制系统中导出标签/标签列表(或者可能是所有标签?)。然后使用svn_load_dirs.pl将它们“堆叠”在一起。

这意味着您不会拥有全部历史记录,但至少拥有大部分冻结的项目状态。

您可能会也可能不会导出一些带有时间戳的版本并尝试将它们堆叠起来。

我最近通过检查签入/提交历史迁移了一些简单的透明 VOB,并为每次签入导出了项目的完整版本,并使用 svn_load_dirs.pl 将它们导入新的 svn 存储库。

于 2011-09-23T17:37:46.970 回答
0

https://netcodeman.blogspot.com/2011/01/converting-from-starteam-to-subversion.html?showComment=1506429228614#c7145074297097582572

https://stackoverflow.com/users/618865/quinn-bailey <= 这家伙之前做过转换并写了一些修复。可能会有帮助。

https://www.openmakesoftware.com/svn-importer-converting-from-borland-starteam/

在这些方面有一些有趣的评论。我也知道 SVN 导入器在导入带有多个标签的修订时存在问题。我听说有一个版本的 SVN Importer 可以解决这个问题,但似乎还找不到。

于 2017-09-26T12:43:20.400 回答