1

我正在尝试将项目从 Perforce 迁移到 Git。

我有一个不寻常的场景(至少我没有发现有人问任何类似的东西),Perforce 项目看起来像这样:

//depot/MAIN
----------------------------------------X--------------------
                                       / - OTHER merged
        -------------------------------
        //depot/OTHER

我正在尝试将 MAIN 迁移到 Git。MAIN 在 OTHER 之前开始,并且仍然存在。OTHER 通过执行 Perforce “移动/重命名”操作在某个时间点合并到 MAIN 中。

当我在 Perforce 中查看 MAIN 中最初来自 OTHER 的文件的历史记录时,我可以看到完整的历史记录,包括移动之前发生的更改。

但是,当我将 MAIN 迁移到 Git 时(使用 git-p4 clone),来自 OTHER 的所有文件的历史记录在文件移动时开始(在上面的 X 处)。

所以,显而易见的问题是:我怎样才能将完整的历史迁移到 Git,包括在 OTHER 中完成的修订?

4

2 回答 2

0

如果您使用 Perforce Git Fusion,您可以创建一个同时映射“主”和“其他”分支的存储库。

然后,当您克隆此 repo 时,它将包含两个分支,并且它们的所有 Perforce 历史都已转换。

如果不详细查看集成历史记录,我无法确切告诉您这将如何。

Git Fusion 管理员指南中提供了有关 Git Fusion 的更多信息,包括如何创建存储库:

http://www.perforce.com/perforce/doc.current/manuals/git-fusion/

于 2015-03-24T16:20:08.393 回答
0

如果没有更好的选择:

将两者分别导出到 git,然后使用reposurgeon将它们组合在一起 - 注意:我没有这样做,但reposurgeon说它可以组合/移植 repos。

于 2015-03-20T11:24:13.933 回答