Git-p4提交错误:没有要提交的文件

时间:2014-01-03 01:05:07

标签: git submit perforce

当使用git-p4命令将git更改提交给perforce时,我收到错误消息“无文件要提交”。 我使用--prepare-p4-only开关,并找出git准备一个没有受影响文件的提交,但更改的文件在perforce客户端工作区中检出,并且差异也附加在准备好的提交细节中。 我使用perforce客户端直接提交文件,它运行正常。没有perforce权限问题。

那么根本原因是什么?

最诚挚的问候,

1 个答案:

答案 0 :(得分:0)

我找到了根本原因:git-p4有多个软件仓库路径支持的bug /未完成的工作。总之,您可以在克隆,同步和rebase期间引入多个库路径,但提交函数仅处理一个库路径。 Werid ......

例如,如果使用以下命令创建git存储库:

git-p4 clone --use-client-spec //Depot/path/a //Depot/path/b gitrepo

Git-p4将在git日志消息中维护两个depot路径,并利用它们进行即将进行的同步和rebase操作。

但是当你想通过git-p4提交将git更改提交回Perforce时,它只会处理// Depot / path / a并完全忽略// Depot / path / b。我的情况是这样的,因为我的git存储库中的一个更改是提交到// Depot / path / b,它总是在提交阶段失败,因为git-p4认为库路径不在范围内并且将忽略在准备变更清单描述时进行文件修改,因此Perforce会抱怨没有要提交的文件。

我做了一个小小的改动,在git-p4脚本中解决了这个问题,并试着稍后将这个补丁汇总到Git。