我在远程计算机上测试对源代码更改的工作流程如下:
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废弃的文件?
答案 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>