使用 ac2git 从 AccuRev 迁移到 Git 时如何省略所有二进制文件

How can I omit all binary files when migrating from AccuRev to Git using ac2git

我正在努力将 AccuRev v5.7 depot 移动到 Git,并且我正在利用 GitHub 上可用的名为 ac2git 的出色开源工具。我是一位经验丰富的 AccuRev 用户,对 Git 还是个新手。

正在迁移的 AccuRev depot 有数百 GB 的二进制文件历史记录,我只关心源代码历史记录以及最终升级的二进制文件集(以便提供与某些遗留 COM 构建的二进制兼容性。 )

根据 GitHub 文档和个人实验,我已经成功地迁移了一个小得多的交易子集,利用 'start-transaction' 和 'end-transaction' 可配置 XML参数。但是,这不能满足我的需要。我希望开始交易为“1”,结束交易为 'now',并在促销中特定省略二进制文件(除了最新提交。)

我研究了 Git 中的一些命令,可以清除某些文件并在 commit/push 上重写历史记录,尽管这首先需要 'ac2git.py' 脚本将数百 GB 的数据提取到我的本地 Git 存储库,我也宁愿通过在迁移过程中省略二进制文件来避免这种方法。

我已经尝试在正在进行迁移的本地存储库上使用 .gitignore 文件 运行 尽管仍在拉取二进制文件。

我希望有人能提供以下其中一项:

  1. 快速 edit/hack 到 Python 脚本以省略二进制文件。可能来自原作者或项目的贡献者,因为它正在积极维护中。

  2. 一位 Git 专家可以推荐一种更好的方法来处理二进制文件的删除,而无需重新创建历史记录。

  3. 产生所需结果的替代方法。

我回答过类似的问题

实质上,脚本使用 accurev pop command to retrieve the information from Accurev. This is implemented in the TryPop() method in the ac2git.py 文件。

你只需要修改call to accurev.pop(),限制它只下载非二进制文件,只要你可以确定哪些文件是二进制文件而不下载它们。

pop() method is defined in the accurev.py 脚本,您需要使用 elementListlistFile 参数来指定要填充的非二进制文件。

为此,Accurev 5.7 需要支持 <element-list> 参数或 -l 选项。这些在 Accurev 6.2 CLI 中可用,但我不知道 Accurev 5.7 是否如此。