12

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

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 的文件?

4

2 回答 2

13

我想你要找的是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/708877 服务器上使用 2013.2/719516 客户端,以防最近添加了该开关...

于 2013-11-13T21:37:14.930 回答
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>
于 2013-11-13T08:39:40.723 回答