Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在perforce中还原未搁置的文件_Perforce_Revert - Fatal编程技术网

在perforce中还原未搁置的文件

在perforce中还原未搁置的文件,perforce,revert,Perforce,Revert,我已取消搁置包含名为foo.txt的“添加”文件的cl。当我还原变更列表时,foo.txt将从我的工作区消失,但仍保留在我的硬盘上 p4 unshelve -f -s $A -c default :: unshelving add foo.txt p4 revert -c default //MY_WORKSPACE/... :: foo.txt is reverted p4 opened -C MY_WORKSPACE :: shows none 当我打开工作区时,我仍然可以看到foo.tx

我已取消搁置包含名为foo.txt的“添加”文件的cl。当我还原变更列表时,foo.txt将从我的工作区消失,但仍保留在我的硬盘上

p4 unshelve -f -s $A -c default :: unshelving add foo.txt
p4 revert -c default //MY_WORKSPACE/... :: foo.txt is reverted
p4 opened -C MY_WORKSPACE :: shows none
当我打开工作区时,我仍然可以看到foo.txt

有没有办法删除添加的文件?
(除了明显的手动删除)

一旦您恢复了文件外接程序Perforce,我认为您可以从磁盘中删除它们-Perforce已经完全忘记了它们。

这种行为是故意的

放弃更改(恢复)

从数据库中删除打开的文件的步骤 更改列表并放弃您所做的任何更改,发出p4回复 指挥部。恢复文件时,Perforce将恢复最后一个版本 您已同步到工作区如果还原为打开的文件 添加时,文件将从更改列表中删除,但不会从中删除 您的工作区。


使用
-w
标志运行revert命令将删除在恢复期间标记为添加的所有文件(请参阅)

p4还原-w[文件规范]

e、 g。,
p4 revert-w-c default//MY_WORKSPACE/…

(foo.txt从磁盘上删除,然后还原)

还原函数不应该这样做吗?@Twisted:人们的想法可能是,
revert
命令这样做是危险的,因为如果你不小心这样做,你可能会损失大量的工作。(可以说他们可以在
revert
中添加一个命令行选项来实现这一点。)好了,是时候修改我的shell脚本知识了。不,Perforce并没有完全忘记它们。它知道您的工作区中有它们。如果您在Perforce之外删除它们,它们将不会在同步操作期间再次出现,因为Perforce认为您已经拥有它们。您必须执行强制同步。以免混淆服务器。@raven将应用于已提交到存储库的文件。但我认为这不适用于
p4 add
p4 revert
之后的文件。由于存储库中没有修订,它将同步哪个版本?这实际上与取消搁置无关。您的问题实际上是关于还原添加的文件。可能是@raven的副本这与“从工作区中删除”无关。这是关于本地文件在
p4 add
之后发生的情况,然后是
p4 revert
。(用
搁置
取消搁置
使事情复杂化)我现在明白了。我撤回我的投票。这是一个伟大的解决方案!请注意,“revert-w”要求您的服务器版本为2013.2或更高版本。