在 Perforce 中解锁文件获取错误文件未在该更改列表中打开

Unlock files in Perforce getting error file(s) not opened in that changelist

一个人更换了他的笔记本电脑并丢弃了这个 perforce 客户端和工作区。他在更改列表中打开了 2 个文件,但不确定更改列表编号。

我有管理员权限并尝试解锁文件但无法解锁

p4 -p p4ser:1001 unlock -f //doc/pascal/projmng/GP.xlsm

//doc/pascal/projmng/GP.xlsm - file(s) not opened in that changelist

然后我试图通过搜索该用户打开的文件来找到更改列表

p4 -p p4ser:1001 opened -u joe | grep GP.xlsm

//doc/pascal/projmng/GP.xlsm#5 - edit default change (binary+l) by joe@joe_dt exclusive

我现在的客户端名称是 joe_dt 并且能够使用 changes

找到更改列表

p4 -p p4ser:1001 changes //doc/pascal/projmng/GP.xlsm

Change 34784592 on 2015/05/28 by joe@joe_dt 'added POR stuf'

现在如果我尝试解锁,我会得到同样的错误。

p4 -p p4ser:1001 unlock -c 34521298 -f //doc/pascal/projmng/GP.xlsm

//doc/pascal/projmng/GP.xlsm - file(s) not opened in that changelist.

所以现在我只有客户端名称了,因为更换了笔记本电脑,该名称不存在。不知道用户 joe 在哪个更改列表中打开了这个文件。 Unlock -x 也没有帮助。

我是 Perforce 的新手,你们能帮我解开这个文件吗?

首先,做到这一点;它将使您不必继续键入“-p p4ser:1001”。 :)

p4 set P4PORT=p4ser:1001    

文件不是 "locked",而是 "opened exclusively" -- 这是两个不同的状态,"unlock" 只处理 "locked" 状态。

文件可以是 "opened" 但不能是 "locked",并且 "unlock" 将文件从 "opened+locked" 变为 "opened"。多个人可能同时拥有一个文件 "opened",即使一个人拥有它 "locked",但其他人不能 "submit" 而其他人有锁。

但是,文件类型为“+l”的文件总是以独占方式打开,无论它是否为 "locked"——一次甚至只有一个人可以打开它。要释放此文件,打开文件的用户需要 "submit" 或 "revert" 它——他们不能释放锁,同时保持文件打开,就像你可以用正常的 "lock".为了让管理员在不删除客户端的情况下释放文件,他们实际上需要强制执行 "revert" 而不是简单的 "unlock".

但是由于 joe 已经丢弃了这个客户端工作区,最简单的方法就是删除它:

p4 client -d -f joe_dt

这应该会导致之前在该客户端上打开的任何文件被放弃,无论它们是锁定的、独占的、两者都是,还是两者都不是。