我有一个Mercurial数据库,我想迁移到Perforce并保留所有更改。告诉我一个可以做到这一点的方法。
答案 0 :(得分:3)
2013年3月更新:
只是为了使信息更新:
有一个名为p4convert-svn的新工具: p4convert-svn doc
谨防/敏感文件系统案例。
以下工具未被提及很多,但是由perforce支持推荐:
它将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,