从Perforce迁移到Git

3
我有一个Perforce代码库//depot/myprog/...,其中包含以下分支:
  1. //depot/myprog_branches/version1/myprg/...
  2. //depot/myprog_branches/version2/myprg/...
现在我想停止使用Perforce,并希望将我的整个代码与分支和标签历史迁移到Git。
如何操作?我知道可以使用git p4命令,但它需要很长时间,而我们只有12小时的Perforce登录会话,该命令因自动退出而失败。
非常感谢您的任何帮助。

您可以重新配置默认的12小时登录超时时间。请询问您的服务器管理员,或在Perforce文档中关于“组限制”中了解超时时间的相关信息。 - Bryan Pendleton
是的,我已经知道了,而且我不能超过12个小时。你能告诉我如何为上面列出的分支定义git-p4.branchList参数吗? - Niraj Nandane
你可以在这里阅读有关 git-p4.branchlist 的信息:http://git-scm.com/docs/git-p4/1.7.11 - Niraj Nandane
@Niraj - 你的 git p4 是否已经成功将 Perforce 标签迁移到了 tags?我们在这方面遇到了一些问题。 - Don Branson
1个回答

1

这个方法有点不太好,但你可以设置一个定时任务,每小时登录一次。显然,你需要把密码写进定时任务脚本里,所以这个方法有点危险。

另一种方法是使用普通的Perforce命令在你想要开始的版本上克隆你的repo,然后欺骗git-p4去使用它。

比如:

$ p4 client
<create suitable client spec>
$ p4 sync //depot/foo
$ cd foo
$ git init
$ git add .
$ git commit

您的git提交需要符合正确的格式,即包含一个消息,后面跟着:
[git-p4: depot-paths = "//depot/foo": change = 1234]

然后执行:
$ mkdir .git/refs/remotes/p4
$ git rev-parse HEAD >.git/refs/remotes/p4/master

现在git-p4将使用您的代码库:

$ git p4 sync

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接