搁置后 p4v 不会删除通过 `p4 add` 添加的新文件

p4v doesn't delete new files added through `p4 add` after shelving

我今天尝试搁置文件并检查了 Revert checked out files after they are shelved 选项,在搁置文件后,一些文件已经恢复,但有些文件仍然存在。这些似乎是通过 p4 add 添加的新文件。搁置后不删除此类文件是默认行为吗?有没有办法在搁置过程中将它们移除?

您在 P4V 中所做的(搁置并恢复)实际上是两个命令的简单组合:shelverevert。在幕后,P4V 将搁置您的工作(确实如此),然后恢复更改列表中的所有内容。

现在,revert 命令恢复 p4 adds 的方式使它们从您的更改列表中消失(恢复的本质)但它们保留在本地文件系统中(以防止无意中丢失code/data)。是的,您可以争辩说,在这方面 revert 在完全恢复您的工作方面做得不是很好,但显然 Perforce 已决定安全起见,不删除您的工作。

正如@Bryan Pendleton 所说,当您还想从文件系统中删除 p4 add 时,可以使用 p4 revert -w 而不是普通的 p4 revert。它不是单独的命令,只是 p4 revert 的变体。但是,当 运行 从 P4V 执行 "Shelve-and-Revert" 组合操作时,无法指定 -w 标志(-w 行为)。 (事实上​​ ,即使在 P4V 的普通 "Revert" 操作中也无法指定 -w。)

我假设你不会因为这个原因从 P4V 切换到命令行(切换到 运行 p4 shelve 后跟 p4 revert -w),所以请记住P4V 有这个小问题,如果需要,还原后删除本地文件。