我在perforce中有一个工作区,在其中我将一些文件标记为删除。现在我想强行删除该工作区。
但我没有管理员权限。我怎样才能做到这一点?
运行p4 opened
以查看所有打开的文件并运行p4 revert
以恢复它们。
然后运行p4 changes -c your-client-name -s pending
以查看所有待处理的更改列表。由于在第一步中您还原了所有打开的文件,因此这些更改列表将全部为空。运行p4 change -d change-number
以删除每个空的挂起更改列表。
然后您可以运行p4 client -d
以删除您的客户端。
为什么在 P4V 中只有 11 次点击,通过任意序列的菜单项。
让我们把 Perforce 送到可用性学校。
这是删除 Perforce 客户端的可编写脚本的过程。小心使用:这会删除您在客户端上进行的所有工作!
还原此客户端上所有更改的文件。
p4 -c $CLIENT revert -k //...
请注意该-k
选项的使用,它“在服务器元数据中将文件标记为已恢复,而不更改客户端工作区中的文件”。由于我们稍后将删除客户端,因此我们不关心更新客户端工作区。如果您打开了许多文件,这会加快速度。
从与客户端关联的挂起更改中删除所有搁置的文件。
p4 changes -s shelved -c $CLIENT | cut -d' ' -f2 |
while read CHANGE; do p4 shelve -c $CHANGE -d //...; done
如果你从不使用p4 shelve
你可以省略这一步。
与客户端关联的所有未决更改现在都是空的。删除它们。
p4 changes -s pending -c $CLIENT | cut -d' ' -f2 | p4 -b 1 -x - change -d
现在没有与客户端关联的未决更改。删除客户端。
p4 client -d $CLIENT
(这个过程应该会容易得多!特别是,我们似乎没有充分的理由在删除客户端之前必须删除与客户端关联的搁置文件。如果您发现自己在这方面遇到困难,请联系 Perforce 支持并建议这样做变得更简单了。)
这是我为清空默认更改集所做的操作,其中有很多文件已签出以进行编辑:
p4 opened | sed 's/#.*$//g' | xargs -iF p4 revert F
这将从生成的文件名中切断注释部分,并将文件名通过p4 opened
管道传输到p4 revert
. 在那之后,我没有任何悬而未决的东西,也没有p4 changes -c my-client-name -s pending
产生任何东西。如果你有一个巨大的变化集,这将需要一段时间。
编写了这个名为p4-delete-client的脚本来删除一个 p4 客户端(它有更改列表和其他问题)。
它具有以下特点:
请注意,该脚本依赖于repo中的其他脚本。
尝试这些步骤:
1.右键单击更改列表
选择“更改所有权”
在工作区框中选择已经存在的工作区,然后单击确定
在删除更改列表之前,需要还原所有文件。
通过 p4v(版本 2013.4)的两个步骤:
还原所有文件。
Right click the pending changelist, and then choose "Revert Files"
删除更改列表。
Right click the changelist, and then choose "Delete Pending Changelist 'XXXXXX'"
这对我在 P4V 中重置默认更改列表有用:
右键单击默认更改列表并选择“编辑挂起的更改列表'默认'”
单击右下角的按钮“另存为编号的更改列表”
右键单击新的更改列表并选择“删除更改列表 XXX”
您还可以右键单击新的更改列表以还原文件以执行您需要执行的任何操作,这在默认更改列表中不可用。