如何从Mercurial(hg)迁移到Perforce(p4)?

时间:2010-12-16 17:15:17

标签: mercurial perforce

我有一个Mercurial数据库,我想迁移到Perforce并保留所有更改。告诉我一个可以做到这一点的方法。

4 个答案:

答案 0 :(得分:3)

2013年3月更新:

只是为了使信息更新:

svn - > P4

有一个名为p4convert-svn的新工具: p4convert-svn doc

谨防/敏感文件系统案例。

hg - > P4

以下工具未被提及很多,但是由perforce支持推荐:

hg convert p4 sink depot

它将p4 sink添加到hg convert扩展中。缺点是它适用于mercurial 1.7.3,这在今天有点过时(当前是2.2.5)。它可以轻松地合并到2.0.2版本中,即使对于大文件扩展用户也可以。

有关详细信息,请在库中读取文件Readme-P4.txt。

答案 1 :(得分:1)

我想到的一种方法是将存储库克隆到我的工作区并执行python脚本来执行迁移。该脚本将循环遍历每个修订版本,从0开始,以提示结束,沿途检入文件到p4。

我认为我可以通过log命令获取所有变更集注释,然后我可以使用hg log -r i --template {rev}: {file_adds}|{file_dels}|{file_mods}\n,其中i是当前版本,以获取添加的文件当我注意到我在一个新的分支上时,我可以检查P4中的分支并在必要时创建它。

在一天结束时,应该相应地检查所有这些东西到P4。

答案 2 :(得分:1)

查看转换存储库的Mercurial wiki页面的Perforce section。似乎有人支持将Mercurial的变更推向Perforce。

答案 3 :(得分:0)

我最近开始研究如何将Alienbrain存储库迁移到Perforce。由于没有可用的工具宣传,我的研究为如何编写迁移计划提供了一些资源。

  • 阅读"迁移规划指南"在Perforce网站上(pdf link)。该文档是针对Perforce编写的ClearCase,但这三种方法仍然相关。特别要看看" Baseline Branch Import"技术,看看这对你是否有意义。

  • 从Tigris(link)下载svn2p4sync的副本,因为它是可用的最受测试的迁移脚本之一。在Tigris网站上,请阅读svn2p4sync发行说明/问题页面,了解脚本的开发历史(link)。

  • 我还在Mercurial wiki上找到了Generic Conversion页面(link)(感谢Wim Coenen回答中的链接)。

编辑:对于有脚本的特定情况,我建议你使用Wim Coenen中的链接答案(link)。

HTH,