Git的翻译 - > Perforce失败了

时间:2015-04-04 16:24:46

标签: git perforce git-p4

我尝试将Git存储库迁移到Perforce中。我试过的是(例如)

  1. 克隆git clone https://github.com/mbostock/d3.git
  2. 将目录更改为新文件夹
  3. 使用git p4 submit
  4. 提交

    一段时间后出现错误消息

    fatal: Not a valid object name HEAD~1036
    Command failed: git cat-file commit HEAD~1036
    

    我没有找到迁移适用的Git。我正在使用Git 1.9.5。我究竟做错了什么?

2 个答案:

答案 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。

有关如何实现这一目标的信息位于:

http://www.perforce.com/perforce/doc.current/manuals/git-fusion/chapter_dyn_ngj_3l.html#section_ecm_qdq_nj

使用Git Fusion的另一个好处是用户不需要在他们的机器上安装任何东西。

希望这有帮助, 仁!