在p4还原后删除新文件

时间:2013-11-13 08:31:48

标签: perforce

我在远程计算机上测试对源代码更改的工作流程如下:

1)在本地机器上:搁置我想要测试的更改

2)在远程计算机上(ssh):

$ p4 revert //... 
$ p4 sync
$ p4 unshelve -s <changelist number>
$ ./run_test_scripts

当我只对已经存在的文件进行更改时,这似乎工作正常。如果我添加了新文件,则会在p4 unshelve期间创建这些文件,但在p4 revert期间不会删除。文档说这是p4 revert所做的,所以它不是意料之外的,但如果我想再次测试相同的文件会导致一些问题:

$ p4 revert //... 
<some file>#none - was add, abandoned
$ p4 sync
File(s) up-to-date.
$ p4 unshelve -s <changelist number>
Can't clobber writable file <some file>

我有没有办法删除Perforce废弃的文件?

2 个答案:

答案 0 :(得分:8)

我认为你要找的是p4 revert -w。来自帮助:

The -w flag causes files that are open for add to be deleted from the workspace when they are reverted.

注意:我正在使用2013.2 / 719516客户端对抗2013.2 / 708877服务器,以防最近添加了交换机...

答案 1 :(得分:1)

修改:重新阅读您的问题 - 这是解决方法,也许不是完整的解决方案......


P4Win中有一个设置,允许您在取消搁置时覆盖文件:

  • Overwrite workspace files even if they are writeable

我通常将它与另一个选项结合使用(再次在gui中):

  • Revert checked our files before unshelving

他们解决了我的问题。

在从gui运行它时查看控制台输出,看起来它是-f命令中的unshelve参数。

  • p4 unshelve -s <changelist> -f -c <changelist> <files>