如何在Perforce中删除工作区(使用p4v)?

162

我是Perforce的新手,为了熟悉它已经创建了一些工作区。现在我想要删除其中的一些工作区。我只想要摆脱这些工作区,以便它们不会出现在工作区视图的下拉列表中(不想处理实际的仓库文件)。

通过谷歌搜索得到的答案是建议"使工作区活跃"(我猜这意味着在工作区下拉列表中选择它?),然后从"编辑"菜单中删除它。不幸的是,当我尝试这样做时,删除选项是灰色的。

有人知道怎么做吗,还是说我只能忍受垃圾工作区?我已经从磁盘上实际删除了其中一个工作区,但它仍然出现在工作区下拉列表中,现在我甚至无法将其与仓库同步,所以我想这不是正确的方法。

5个回答

240

在“视图”菜单中选择“工作区”,您将看到您创建的所有工作区。选择要删除的工作区并单击“编辑” -> “删除工作区”,或右键单击并选择“删除工作区”。如果工作区被“锁定”以防止更改,您将收到错误消息。

要解锁工作区,请单击“编辑”(或右键单击并单击“编辑工作区”)以打开工作区编辑器,取消选中“锁定”复选框,然后保存更改。一旦解锁了工作区,就可以删除它。

根据我的经验,在单击工作区之前,工作区仍将显示在下拉列表中,此时p4v会找出您已将其删除并从列表中删除它。


当我尝试右键单击要删除的工作区并选择“解锁”时,它会发送p4命令:“p4 unlock //my_workspace”,响应是:“//secondary.... -files(s) not opened on this client.”似乎没有任何作用。我已经尝试切换工作区和退出p4v,但垃圾工作区始终保留在下拉菜单中。 - Angelo
你正在尝试锁定/解锁文件(在p4v的左窗格中),而不是工作区。我已经修改了我的答案,以帮助您打开工作区视图。 - Commodore Jaeger
1
哈!做到了。我原本以为“工作区视图”是左侧面板。非常感谢! - Angelo
另外,如果您是管理员并尝试删除其他人的工作区,请确保单击“清除筛选器”按钮--否则您只会看到自己的个人工作区。 - Timothy Lee Russell
1
我发现菜单项“查看/工作区”被禁用(灰色)。通过切换到“挂起的更改列表”选项卡来解决问题。 - Colonel Panic

9
以下小脚本可在没有可视化客户端的情况下完成该操作。
$ cat ~/bin/pdel

#!/bin/sh

#Todo: add error handling

( p4 -c $1 client -o | perl -pne 's/\blocked\s//' | p4 -c $1  client -i ) && p4 client -d $1

6
在P4V中,单击查看>工作区
如果要删除的工作区在列表中不可见,则可能需要取消选中仅显示可在此计算机上使用的工作区复选框。
右键单击要删除的工作区,选择编辑工作区'My_workspace'
高级选项卡上,取消选中锁定:只有所有者才能编辑工作区设置>然后单击确定
现在回到Perforce的工作区选项卡,在要删除的工作区上单击右键,选择删除工作区'My_workspace'
单击它时,P4V应该会从下拉列表中删除该项。
有一种情况是,先前已删除的工作区仍然保留在下拉列表中,并且P4V显示以下错误:

P4V工作区切换错误。此工作区不能在此计算机上使用,因为主机字段与您的计算机名称不匹配或工作区根目录不能在此计算机上使用。

如果出现此错误,则工作区(可能在另一个主机上)可能仅已卸载。单击P4V工作区回收站
在结果未加载的工作区窗口中,右键单击有问题的工作区,然后选择删除工作区'My_workspace'。 P4V现在应该会从下拉列表中删除工作区项。

3
如果你已经在工作区选项卡中成功删除,但是在下拉菜单中仍然显示。那么你可以按照以下步骤成功删除:
  1. 进入 C:/Users/user_name/.p4qt

user_name 是你计算机的用户名

  1. 在001Clients文件夹中,会有一个WorkspaceSettings.xml文件。

其中会有两个标签:

  1. varName = "RecentlyUsedWorkspaces" 删除已删除的工作区标签

  2. 一个propertyList标签将存在 varName=deleted_workspace_name 删除该标签。

从下拉菜单中,工作区的名称将被删除


你可以直接删除WorkspaceSettings.xml文件,p4v会在后面重新创建它。 - zwcloud

3
  1. Ctrl + 5:在P4V中查看Workspace视图。

view workspace in p4v

  1. 删除相关的工作区:在P4V中删除相应的工作区。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接