2009-05-26 91 views
6

我想从我们的perforce安装中删除一个旧用户。先前的管理员已经删除了所有他们的积极工作区/客户,所以我们应该可以现在删除的用户,但是当我运行恢复文件不在工作区perforce

p4 user -f -d auser 
User auser has file(s) open on 1 client(s) and can't be deleted. 

然而auser不再有任何关联的客户端,如果我过滤未决更改列表视图在P4V中,它显示用户在默认更改列表中检出了一个文件,但没有指定客户端。即使我以用户身份登录,我似乎无法恢复或对文件进行任何操作。任何提示我如何解决这个问题?

回答

1

已解决。

有点奇怪,但这是我做的。我得到了包含该文件的默认更改列表的详细信息。它的工作区名称是机器的名称。我登录到机器,然后作为用户执行。此时,我可以看到挂起的更改列表并恢复该文件。现在我可以删除用户。

这是怎么发生的?

我认为发生的必然是客户的混乱。前一段时间,我更换了该机器(它的构建服务器)上不少客户的所有者,其中一些客户必须为旧用户打开文件。这是我能想出的唯一解释。

5

虽然这两个命令的返回任何内容:

$ p4 clients -u <USER> 

$ p4 changes -s pending -u <USER> 

此命令给我的文件被打开:

$ p4 opened -u <USER> 
//depot/path/to/file#1 - edit default change (text) by <USER>@<CLIENT> 

此命令不起作用:

$ p4 -u <USER> -H <CLIENT> revert -k //depot/path/to/file 
//depot/path/to/file#1 - belongs to user <USER>, not reverted 

删除客户确实:

$ p4 client -o <CLIENT> > <CLIENT>.txt 
$ p4 client -d -f <CLIENT> 
$ p4 opened -u <USER> 
File(s) not opened anywhere. 

FTW! \ O/

如果需要,然后你可以重新创建客户端:

$ p4 client 

在你的p4 client -o <CLIENT>输出创建的<CLIENT>.txt文件读取并保存。

更多这里: http://answers.perforce.com/articles/KB_Article/Reverting-Another-User-s-Files