首页 > 解决方案 > 取消搁置在 Perforce/P4 中排他签出的文件

问题描述

Perforce noob here - 我在架子上有一个文件,我想取消搁置它以运行一些东西,但是该文件专门在另一台机器上签出。理想情况下,我想做的是在本地取消搁置文件,做一些事情,然后扔掉我的本地更改。

我考虑过使用p4 printp4 copy但它们似乎没有按要求工作 - 例如,复制似乎在仓库路径之间复制文件。

如何取消搁置并忽略锁?或者,如何从搁置中下载文件以在本地覆盖它?

标签: lockingperforceunshelveshelving

解决方案


两种选择:

  1. 用于p4 print FILE@=SHELF获取文件的内容。这对于一个文件来说非常简单,但对于多个文件来说会很烦人。

  2. 创建一个新的分支/流并将其搁置在那里;独占锁在分支中不是全局的,因此您可以在自己的分支中做任何您想做的事情。

使用流选项 2 看起来像:

p4 switch -c my-new-stream
p4 unshelve -S my-new-stream -s SHELF

使用手动分支规范,它看起来更像(假设您的客户端映射所有内容,如果没有,则需要将新分支添加到客户端映射的额外步骤):

p4 branch my-new-branch
(fill in a view mapping the current branch to your new branch)
p4 copy -b my-new-branch
p4 submit
p4 unshelve -b my-new-branch -s SHELF

推荐阅读