当工作区已从磁盘中删除时,删除具有挂起文件的Perforce客户端工作区?

时间:2011-02-28 18:33:24

标签: version-control perforce

如果已从磁盘中删除该工作区,如何删除包含待处理文件的工作区?

注意事项:

  • 仅限p4命令行;不是p4v gui
  • 定期用户访问;没有管理员权限

方案:

  • user_workspace目录
  • 的磁盘上创建名为~/my_workspace的工作区
  • p4编辑默认待定更改列表
  • 中工作区中的文件
  • 手动删除工作区(rm -rf ~/my_workspace
    • 工作区仍存在于具有待处理文件的服务器上

不起作用的解决方案:

1:删除工作区

不起作用,因为工作区已打开文件。

p4 client -d user_workspace

客户'user_workspace'已打开文件;使用-f强制删除。

2:强制删除工作区

不起作用,因为不是管理员。

p4 client -d -f user_workspace

您无权执行此操作。

3:删除待定的更改列表;然后删除工作区(尝试1)

p4 changes -c user_workspace -s pending

仅列出待处理编号的更改列表,不处理默认的待处理更改列表。

p4 -c user_workspace -d changelist_number

不可能,因为待处理的更改列表没有更改列表编号。

4:删除待定的更改列表;然后删除工作区(尝试2)

尝试在不存在的目录上执行p4还原会产生奇怪的错误。

p4 revert ~/my_workspace

/ home / user / my_workspace - 必须引用客户端'user_workspace'。

p4 -c user_workspace revert ~/my_workspace

/ home / user / my_workspace - 必须引用客户端'user_workspace'。

setenv P4CLIENT user_workspace; p4 -c user_workspace revert ~/my_workspace

/ home / user / my_workspace - 必须引用客户端'user_workspace'。

5 个答案:

答案 0 :(得分:31)

1。还原待处理的更改列表

必须使用Perforce depot表示法而不是本地目录表示法,因为本地目录不再存在。

p4 -c user_workspace revert -k //...

// blah / blah / blah / file#rev - 编辑,还原

2。删除客户端工作区

p4 client -d user_workspace

客户端user_workspace已删除。

答案 1 :(得分:5)

这将为您提供客户端

的待定更改
p4 changes -c user_workspace

这将删除您选择的待定更改列表

p4 change -d <change list number>

之后,您可以使用

删除客户端
p4 client -d user_workspace 

答案 2 :(得分:3)

命令行对我不起作用。它不断报告&#34;超过许可证配额&#34;任何命令。我可能有一些与之相关的配置错误。这意味着我必须首先纠正该问题,然后使用上述解决方案。但是,我找到了使用p4v客户端解决此问题的另一种方法。

垃圾工作区是我以前的计算机上的旧工作区。没有任何文件签出的那些我能够在工作区选项卡视图中右键单击删除。那些带有文件的工作区已经检出我无法像其他人那样删除。要删除这些,我不得不采取一些额外的步骤。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~

*或者:仅使用p4v客户端*

尝试这四个步骤
  1. 编辑工作区,只删除旧工作区的主机字段。在我读过的另一个帖子中,允许从任何计算机进行编辑。
  2. 切换到工作区
  3. 还原WORKSPACE视图中的文件;没有必要将文件同步到我的本地机器
  4. 切换回工作区标签后删除工作区。
  5. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~

    我希望这有助于某人。

答案 3 :(得分:0)

写了这个名为 p4-delete-client 的脚本,用于删除p4客户端(包含更改列表和其他问题)。
它具有以下特点:

  • 自动删除更改列表(还原待处理和删除搁置)
  • 修复主机名(如果与创建客户端的主机名不同)
  • 解锁客户端(如果已锁定)
  • 删除客户端
  • 删除关联文件(可以不配置参数)
  

请注意,该脚本依赖于repo中的其他脚本。

答案 4 :(得分:-1)

rm -rf命令仅删除了系统上的文件,工作区仍然存在于perforce中。如果要删除它,则必须先恢复文件。

p4 revert~ / my_workspace p4 client -d user_workspace