Perforce 无法编辑文件,因为它说它已经打开,但是 'p4 opened' 报告否则

Perforce can't edit file as it says it is already opened, however 'p4 opened' reports otherwise

我遇到了这种情况

当我尝试 运行 p4 edit <file> 时,它显示

- can't edit (already opened on this client)

但是,当我 运行 p4 opened <file>(使用 -a-x 选项)时,它说

-  - file(s) not opened on this client.

我现在处于这种边缘状态。

我该如何解决这个问题?究竟发生了什么?

首先 -- 仔细检查您从问题中删除的所有文件路径是否真正相互匹配。 合法 出现此错误的方法是,如果您尝试编辑已在不同 local 下打开的 depot 文件 同一客户端上的路径(因为您打开它然后更改了客户端视图),并且您试图通过 "new" 本地路径重新打开同一个 depot 文件,而它仍然有未决的更改之前的位置。确保您 运行宁 p4 opened <file>p4 revert <file> 相同的确切仓库路径 上,该路径由 can't edit 错误返回。

消除后:

这个不应该抛出的错误通常是 Perforce 服务器内部数据库不一致的症状 -- depot 文件在 db.locks table 中被记录为打开您的客户端,但相应的客户端文件不在 db.working table.

解决此问题的最简单方法是让管理员在服务器根目录上 运行 p4d -xf 925;这是一个修复命令,用于查找这种确切的不一致,应该通过 p运行ing 出不匹配的 db.locks 条目来修复它。

p4d -xx 也会修复它(此命令扫描一组不同的不一致并写入一个日志补丁文件来修复它们)。