一个人更换了他的笔记本电脑并丢弃了这个强制客户端和工作区。他在变更列表中打开了 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,并且能够使用更改找到更改列表
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
文件不是“锁定”,而是“以独占方式打开”——这是两种不同的状态,“解锁”仅处理“锁定”状态。
文件可以“打开”,但不能“锁定”,“解锁”将文件从“打开+锁定”变为“打开”。多个人可能同时“打开”一个文件,即使其中一个人“锁定”了该文件,但当其他人拥有锁定时,其他人都无法“提交”。
但是,具有“+l”文件类型的文件始终以独占方式打开,无论它是否“锁定”——一次只有一个人可以打开它。要释放此锁定,打开文件的用户需要“提交”或“恢复”它 - 他们无法像使用普通“锁定”一样在保持文件打开的同时释放锁定。对于管理员要在不删除客户端的情况下释放文件的情况,他们需要实际强制“还原”而不是简单的“解锁”。
但是由于 joe 已经放弃了这个客户端工作区,最简单的事情就是删除它:
p4 client -d -f joe_dt
这应该会导致之前在该客户端上打开的任何文件被放弃,无论它们是锁定的、独占的、两者都锁定还是两者都没有。
关于perforce - 在 Perforce 中解锁文件,获取未在该更改列表中打开的错误文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31579580/