在perforce中还原未搁置的文件
我已取消搁置包含名为foo.txt的“添加”文件的cl。当我还原变更列表时,foo.txt将从我的工作区消失,但仍保留在我的硬盘上在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
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或更高版本。