我已经通过 git-p4 配置了 perforce 存储库的 git 镜像,如http://answers.perforce.com/articles/KB_Article/Git-P4中所述,并且工作了一段时间:我能够将 perforce 更改为 git 和提交 git 更改到 perforce。然后突然git p4 submit
命令停止工作。当我运行它时,我得到一个错误:
You have files opened with perforce! Close them before starting the sync.
当我以详细模式运行它时,它显示该p4 -c <client name> -G opened ...
命令失败并显示以下输出:
{scodeserrorsdatasrPath '/path/to/git/clone/...' is not under client's root '/path/to/git-p4-area'.
severityisgenerici0%
嗯,它确实不是,/path/to/git-p4-area
但以前不是问题。我仍然可以git p4 rebase
毫无问题地运行。如何修复Path is not under client's root
错误?
更新
感谢布莱恩的回答,我能够解决它。事实证明我得到的错误是正确的,我确实在 perforce 中打开了文件。我已经用p4 revert ...
里面的命令恢复了它们,/path/to/git-p4-area
现在git p4 submit
可以正常工作了。
该错误使我感到困惑,因为当您使用 git-p4 时,您不会更改 perforce 工作区中的文件,而是使用 git 存储库,而 git-p4 会将 git 提交转换为 perforce 更改,反之亦然。原来我的 perforce 票在上次提交操作的中间过期(票每 12 小时过期)。因此,一些文件在 perforce 工作区中打开。最好的解决办法是工作不到 12 小时……