1

标题说明了一切。

有一个文件 perforce 认为它是由用户在给定工作区和给定更改列表上以独占模式打开的,但工作区和更改列表都不存在。工作区被管理员强制删除,该文件神秘地从更改列表中消失了,然后我们从中删除了所有其他文件并将其删除。

文件仍显示为由该用户在该更改列表上的该工作区上打开和锁定。

最有可能损坏的 perforce 数据库,这里可能的解决方案,如 perforce 论坛上的回答:https ://kb.perforce.com/AdminTasks/BackupAndRecovery/RarelyUsedSe..ommandFlags/P4dXxFlag

4

3 回答 3

0

您知道您的管理员是如何删除工作区的吗?根据文档,删除工作区应自动还原所有文件,但将本地文件保留在文件系统上,这应该足够直接删除。

如果问题仅仅是文件保持锁定,那么一个简单的:

p4 unlock -f <file>

由管理员发布,应该可以解决问题。

于 2013-11-04T21:07:20.007 回答
0

在将仓库移动到新服务器后,我设置了这个标志,我不推荐这样做。

我在新系统上创建了用户。我能够看到以前由于过滤器而隐藏的旧工作区。右键单击工作区,选择编辑,在高级选项卡下有一个主机字段,我将其更改为匹配当前主机名(包括端口 - newhost:1666)。设置与用户/工作区的连接 现在复选标记是红色的,而不是蓝色的。我选择了每个标记的文件,右键单击并选择默认安全模式下的解决。我忘记了图标是否改变了。然后我右键单击并选择 Revert if Unchanged,图标回到“文件同步”蓝点。完毕。

我希望这是有道理的。

于 2017-10-05T21:39:17.153 回答
0

这听起来像是服务器的 db.locks 和 db.working 表之间的不一致 - 删除工作区必须删除 db.working 条目而不是 db.locks 条目(它们总是应该是一对一的) .

从服务器端有几个选项可以解决这个问题:

p4d -xx db.working db.locks
p4d -jr jnl.fix

或者:

p4d -xf 925

也可以通过一些回转来从客户端修复它:

p4 set P4CLIENT=CLIENT_NAME  (where this is the name of the deleted workspace)
p4 client
p4 sync FILE_NAME
p4 edit FILE_NAME
p4 revert FILE_NAME
p4 sync #none
p4 client -d CLIENT_NAME

即重新创建打开的文件状态(相同的仓库文件和相同的客户端名称,以便密钥匹配),然后恢复它以便可以正确清理条目。

于 2017-10-05T21:53:59.923 回答