有谁知道将Accurev“仓库”及其完整历史导出到例如git或mercurial的简单方法?或者甚至通过第 3 方系统?除非我错过了明显的东西,否则我无法通过谷歌找到任何东西。
如果没有,一个额外的问题,是否可以基于具有特定时间戳的补丁构建一个 git/mercurial 存储库?换句话说,只需让 accurev 将其历史记录转储为一组补丁并将它们导入存储库。
@jtalbott 关于将 AccuRev 仓库的历史完全转换为另一个 SCM(包括 git)的难度绝对是正确的。但是,如果您愿意接受转换单个流(无论是您的仓库的“根”流还是您决定用作转换基础的任何其他流),请查看https://github.com/rlaneve /accurev2git/。请注意,这是一个非常非常幼稚的实现,对于任何大型软件仓库都将花费相当多的时间,并且会在转换过程中过度破坏您的硬盘驱动器。但是,它确实有效,而且我已经使用它来将至少几十个 AccuRev 软件仓库转换为 git 存储库。
免责声明:几年前我写了这个工具,因为我找不到现有的工具。
查看ac2git,这是一个比ryan-laneve的accurev2git功能更全面的 Python 转换工具,尽管我们相信他的原始概念。
迁移到另一个工具的最佳选择是从流(或快照)中提取并导入另一个工具。您不会有事务性注释、日志等,但您将能够以这种方式建立历史记录,并保留 AccuRev,以防您需要检查未专门迁移的内容。
AccuRev 的 Timesafe 架构保证您可以使用必要的历史记录,但就像迁移到AccuRev 传统上是通过基线导入完成的一样,我怀疑您进行反向操作的成本/收益比不会导致完整的历史记录作为选项。
由于 AccuRev 范式不同于传统的分支和标签工具,因此将完整历史记录从 AccuRev 库导出到任何其他工具将是一项挑战。数据当然可以从 AccuRev 获取,但您必须编写一个全面的、符合逻辑的提取例程才能将其拉入另一个系统。任何其他人所做的任何事情都可能非常适合他们的特定需求。使用来自 AccuRev 流的时间点配置的基线导出将更加可行和直接。
请问最终目的是什么?是完全从 AccuRev 迁移,还是您只是希望能够让用户或团队使用 Git 作为客户端而不是 AccuRev?我提出这个是因为 AccuRev 最近刚刚推出了一个完整的 Git 集成平台,称为 Kando。你可以自己阅读它,但它可能是你正在寻找的。
问候,〜詹姆斯
AC2GIT 转换是我见过的从 accurev 到 git 迁移的最佳转换工具之一。非常稳定 https://github.com/orao/ac2git