如何将Accurev导出到另一个VCS?

9
有没有简单的方法可以将Accurev“仓库”和其完整历史记录导出到Git或Mercurial,甚至通过第三方系统?除非我错过了什么,否则我在谷歌上找不到任何信息。
如果不行,那么一个额外的问题是,是否可以基于具有特定时间戳的补丁构建Git/Mercurial存储库?换句话说,只需让Accurev将其历史记录转储为一组补丁,并将其导入存储库。

1
这个问题已经被问了一段时间,而且没有更新。@pareley72的答案是最新的,任何查看此问题的人都应该考虑它。 - nonsensickle
1
谢谢,但是你拼错了我的名字! - parsley72
5个回答

4
@jtalbott关于将AccuRev存储库的历史记录完全转换为另一个SCM(包括git)的困难性是正确的。但是,如果您愿意将单个流(无论是您的存储库的“根”流还是您决定用作转换基础的任何其他流)进行转换,则可以查看https://github.com/rlaneve/accurev2git/。请注意,这是非常、非常天真的实现,对于任何规模的存储库都需要相当长的时间,并且在转换过程中会过度使用硬盘。但是,它确实有效,并且我已经将至少几十个AccuRev存储库转换为git存储库。

免责声明:我几年前编写了这个工具,因为找不到现有的工具。


谢谢。类似我用Python写的东西。 - Barry

3

请查看ac2git,这是一个比Ryan-Laneveaccurev2git更加全面的Python转换工具,尽管我们要将原始概念归功于他。


2
你更好的选择是从流中提取(或快照)并导入其他工具。虽然你将无法获得事务性注释、日志等,但你可以通过这种方式建立历史记录,并保留AccuRev以便在需要时检查未特定迁移的内容。
AccuRev的Timesafe架构确保您可以访问所需的历史记录,但与传统的基线导入进行迁移不同,我猜想你做相反的操作的成本效益比可能永远不会导致完整的历史记录选项。

除非已经有一个为您编写。请参见ac2git。我花了时间将AccuRev导出到Git,因为我非常想摆脱它。此外,我会导出完整历史记录,并尽力将其映射到最佳的git分支模型,使其更加实用。虽然还不完美,但对于大多数人来说足够接近了。 - nonsensickle

1

由于AccuRev范例与传统的分支和标签工具不同,因此将完整历史记录从AccuRev存储库导出到任何其他工具可能是一项挑战。数据当然可以从AccuRev方面访问,但您必须编写全面的逻辑提取程序,以将其拉入另一个系统中。任何其他人完成的工作可能非常定制化以满足其特定需求。使用来自AccuRev流的时间点配置进行基线导出将更可行和直接。

我可以问一下最终目标是什么吗?是完全迁移离开AccuRev还是只是希望用户或团队能够使用Git作为客户端而不是AccuRev?我提出这个问题是因为AccuRev最近推出了一个名为Kando的完整Git集成平台。您可以自己阅读相关信息,但这可能是您正在寻找的东西。

祝好, ~詹姆斯


5
根据您的帖子历史记录,似乎您与Accurev有关联。请确保披露与所讨论产品的任何关联。 - vcsjones
1
同意 @vcsjones 的观点 - 你似乎是 Accurev 的员工。 - Barry
1
如果kando允许我将accurev仓库克隆为一个git仓库,并保留完整的历史记录,那么这将是一个可接受的答案。如果kando只是提供了相反的功能,即允许acgui.exe和CLI在git仓库上运行,那么这不是一个解决方案。回答你的问题,我们的想法是使用其他第三方工具,而这些工具不能在accurev上运行。 - Barry
1
@Barry 没问题。你最好的选择是从流(或快照)中提取并导入到其他工具中。虽然你不会有事务性注释、日志等,但你可以通过这种方式建立历史记录,并保留 AccuRev 以防需要检查未经过特定迁移的内容。 - jtalbott
5
我不同意。我建议从现在开始,您应该说明与某些产品的关联。您做出了对某个产品Kando的推荐,显然是因为有所偏见。 - vcsjones
显示剩余4条评论

-1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接