如何删除具有挂起更改列表的perforce客户端

Ste*_*ark 38 perforce

我在perforce中有一个工作区,我在其中制作了一些标记为删除的文件.现在我想强行删除该工作区.

但我没有管理员权限.我怎样才能做到这一点?

Bry*_*ton 49

运行p4 opened以查看所有打开的文件并运行p4 revert以还原它们.

然后运行p4 changes -c your-client-name -s pending以查看所有待处理的更改列表.由于在第一步中您还原了所有打开的文件,因此这些更改列表都将为空.运行p4 change -d change-number以删除每个空的待处理更改列表.

然后你可以运行p4 client -d删除你的客户端.

  • 为了恢复和删除待定的更改列表,我更喜欢这个序列:`p4更改-u joe`以列出我的挂起的更改列表; `p4 revert -c 12345 // ...`恢复我的待定更改列表12345中的所有文件(例如); `p4更改-d 12345`删除现在为空的更改列表.HTH. (6认同)

Col*_*nic 47

通过任意一系列菜单项,为什么P4V中只有11次点击.

  1. 右键单击更改列表
  2. 删除搁置的文件
  3. '是'
  4. 右键单击更改列表
  5. 删除所有工作
  6. 右键单击更改列表
  7. 还原文件
  8. '还原'
  9. 右键单击更改列表
  10. 删除待定更改列表
  11. '是'

让我们将Perforce发送到可用性学校.


Gar*_*ees 13

这是一个用于删除Perforce客户端的可编写脚本的过程.小心使用:这将删除客户端上正在进行的所有工作!

  1. 还原此客户端上的所有已更改文件.

    p4 -c $CLIENT revert -k //...
    
    Run Code Online (Sandbox Code Playgroud)

    请注意该-k选项的使用,该选项"将文件标记为在服务器元数据中还原而不更改客户端工作空间中的文件".由于我们稍后将删除客户端,因此我们不关心更新客户端工作区.如果您打开了许多文件,这会加快速度.

  2. 从与客户端关联的挂起更改中删除所有搁置的文件.

    p4 changes -s shelved -c $CLIENT | cut -d' ' -f2 |
    while read CHANGE; do p4 shelve -c $CHANGE -d //...; done
    
    Run Code Online (Sandbox Code Playgroud)

    如果您从未使用过p4 shelve,则可以省略此步骤.

  3. 与客户端关联的所有挂起更改现在都为空.删除它们.

    p4 changes -s pending -c $CLIENT | cut -d' ' -f2 | p4 -b 1 -x - change -d
    
    Run Code Online (Sandbox Code Playgroud)
  4. 现在没有与客户端相关的待定更改.删除客户端.

    p4 client -d $CLIENT
    
    Run Code Online (Sandbox Code Playgroud)

(这个过程应该更容易!特别是,在删除客户端之前,似乎没有充分的理由我们必须删除与客户端关联的搁置文件.如果您发现自己正在努力解决这个问题,请联系Perforce支持并建议它是变得更简单.)


Juv*_*uve 10

以下是我清空默认更改集所做的操作,其中有很多文件已签出以供编辑:

 p4 opened | sed 's/#.*$//g' |  xargs -iF p4 revert F
Run Code Online (Sandbox Code Playgroud)

这将从文件名生成的文件名中删除注释部分,并将文件p4 opened名传递给p4 revert.从那以后,我什么都没有未决和p4 changes -c my-client-name -s pending产量没有.如果你有一个巨大的变化集,这将需要一段时间.


Arn*_*lca 5

写了这个名为p4-delete-client的脚本来删除p4客户端(它有更改列表和其他问题).
它具有以下功能:

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

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