我尝试将Git存储库迁移到Perforce中。我试过的是(例如)
git clone https://github.com/mbostock/d3.git
git p4 submit
一段时间后出现错误消息
fatal: Not a valid object name HEAD~1036
Command failed: git cat-file commit HEAD~1036
我没有找到迁移适用的Git。我正在使用Git 1.9.5。我究竟做错了什么?
答案 0 :(得分:2)
git-p4实际上是为克隆现有的p4 repo,然后将其镜像到/从git镜像而设计的。您正在尝试创建一个新的p4分支,git-p4无法直接执行。所以这有点复杂。
尝试以下方法:
<强> 1。在某处的p4中创建一个空分支。
您需要一个指向您新位置的客户端,// depot / foo:
$ p4 client whatever....
您还需要创建一个空文件以保持p4满意:
$ touch P4EMPTY
$ p4 -c your_client_name add P4EMPTY
$ p4 submit -d 'Add empty file'
<强> 2。克隆它:
$ cd /path/to/git/dir
$ git p4 clone //depot/foo
第3。抓住你想要出口的仓库:
$ git remote add mycode git://whatever.git
$ git fetch mycode
$ git checkout -b upstream mycode/master
<强> 4。将其与p4 repo重新对照:
$ git p4 rebase p4/master
<强> 5。提交:强>
# We don't want to edit the commit message, so skip that part
$ git config git-p4.skipSubmitEdit true
$ P4CLIENT=your_client_name git p4 submit
或类似的东西......: - )
答案 1 :(得分:1)
Perforce的Git Fusion产品可以将Git存储库导入Perforce。
有关如何实现这一目标的信息位于:
使用Git Fusion的另一个好处是用户不需要在他们的机器上安装任何东西。
希望这有帮助, 仁!