Har*_*lan 5 git perforce git-p4
我有一个 git 存储库,我想将其镜像到 Perforce 存储库。我已经下载了 git-p4 脚本(不提供弃用警告的较新版本),并且一直在使用它。我已经想出了如何从 Perforce 中提取更改,但是当我尝试从 git repo 同步更改时出现错误。这是我到目前为止所做的:
git clone git@github.com:asdf/qwerty.git
git-p4 sync //depot/path/to/querty
git merge remotes/p4/master     (there was a single README file...)
所以,我已经将原点复制到一个干净的新导演,得到了一个看起来很可爱的合并文件树,并git status表明我是最新的。但:
> git-p4 submit
fatal: Not a valid object name HEAD~261
Command failed: git cat-file commit HEAD~261
git 邮件列表上的这个线程似乎是相关的,但我无法弄清楚他们对所有 A、B 和 C 做了什么。有人可以澄清“无效的对象名称”是什么意思,以及我能做些什么来解决这个问题?我想要做的就是定期将源/主节点快照到 Perforce 中;不需要完整的历史记录。谢谢。
fatal: Not a valid object name
应该意味着遥控器的 HEAD 指向了错误的引用。
换句话说,当您在 git 存储库中执行 P4 导入时,由于 SHA1 不正确,因此无法从该 git 存储库提交到 P4。为什么?我不知道。
这就是为什么,在您提到的线程中,用户:
--import-local使用(“导入到refs/heads/,而不是refs/remotes”)将 P4 存储库克隆到 B 中,修复HEADB 的 引用 B 中导入的 p4 master 分支
将 B 克隆到 C,一个非裸存储库(它的工作树不为空,您可以在其中工作)
B 仅在初始导入时存在。
其余的工作是用 C 语言完成的(不存在 SHA1 不正确的问题):
git-p4 syncremotes/p4/master(除了 之外  还要在 C 中声明remotes/origin/*)git-p4 submit| 归档时间: | 
 | 
| 查看次数: | 2580 次 | 
| 最近记录: |