在使用perforce一段时间之后,我留下了许多仍未打开的更改列表。 要清理我想要摆脱它们的一部分。 所以这就是使这个变得复杂的原因:
如果上述一个或多个要点适用于更改列表,p4v
(可视客户端)将不允许您删除更改列表。
那么删除这些更改列表的有效方法是什么??
答案 0 :(得分:5)
首先,perforce 拒绝在任何更改列表上拒绝,如果主机在其工作区中不同。因此,第一步是将工作区的主机更改为当前的主机。这可以通过可视化客户端p4v
轻松完成。打开工作区的属性,选择编辑并更改主机。
然后,您可以使用命令行摆脱讨厌的更改列表:
# to delete a changelist
CLIENT="name_of_your_client"
CHANGE="number_of_the_changelist_to_delete"
p4 -c $CLIENT shelve -c $CHANGE -d //... # Delete all shelved files from it.
p4 -c $CLIENT revert -k -c $CHANGE //... # Revert all files from changelist (only metadata).
p4 -c $CLIENT change -d $CHANGE # Finally delete the changelist.
在最后一个命令之后,更改列表将永远消失。
答案 1 :(得分:1)
可以从命令行修复主机名,如下所示:
client_hostname="$(p4 client -o ${CLIENT} | grep "^Host" | awk '{print $2}')"
p4 client -o ${CLIENT} | sed "/^Host:/ s=${client_hostname}=${HOSTNAME}=" | p4 client -i
前段时间遇到同样的问题并写了一个脚本(p4-delete-changelist)来克服所有这些问题(另一个 - 删除p4修复)。
请注意,该脚本取决于存储库中的another file。