取消搁置 Perforce/P4 中独占检出的文件
Unshelve a file which is in exclusive check out in Perforce/P4
这里是 Perforce 菜鸟 - 我在架子上有一个文件,我想将其搁置以 运行 一些东西,但是该文件是在另一台机器上专门检出的。理想情况下,我想做的是在本地取消搁置文件,做一些事情,然后扔掉我的本地更改。
我考虑过使用 p4 print
和 p4 copy
,但它们似乎无法按要求工作 - 例如copy 似乎在软件仓库路径之间复制文件。
如何取消搁置和忽略锁定?或者,如何从架子上下载文件并在本地覆盖它?
两个选项:
使用p4 print FILE@=SHELF
获取文件内容。这对于一个文件来说非常简单,但对于多个文件来说会很烦人。
创建一个新的 branch/stream 并在那里取消搁置;独占锁不是跨分支的全局锁,因此您可以在自己的分支中做任何您想做的事情。
使用流选项 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
这里是 Perforce 菜鸟 - 我在架子上有一个文件,我想将其搁置以 运行 一些东西,但是该文件是在另一台机器上专门检出的。理想情况下,我想做的是在本地取消搁置文件,做一些事情,然后扔掉我的本地更改。
我考虑过使用 p4 print
和 p4 copy
,但它们似乎无法按要求工作 - 例如copy 似乎在软件仓库路径之间复制文件。
如何取消搁置和忽略锁定?或者,如何从架子上下载文件并在本地覆盖它?
两个选项:
使用
p4 print FILE@=SHELF
获取文件内容。这对于一个文件来说非常简单,但对于多个文件来说会很烦人。创建一个新的 branch/stream 并在那里取消搁置;独占锁不是跨分支的全局锁,因此您可以在自己的分支中做任何您想做的事情。
使用流选项 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