如何还原文件但将其保留在待定更改列表中?

时间:2013-06-18 10:11:15

标签: perforce p4v

在Perforce P4V中,我有一个待处理的更改列表中的文件。我想还原文件的内容,但将文件保留在更改列表中。我怎么能这样做?

我尝试了Perforce的revert命令,但是从更改列表中删除了该文件。

5 个答案:

答案 0 :(得分:4)

实现此目的的唯一方法(将原始内容复制/粘贴回此文件,但这看起来很愚蠢)是恢复并重新打开它。搁置本身并不会还原文件。 “搁置和还原”的概念仍然是两个操作。

答案 1 :(得分:3)

其他受访者指出,这是不可能的。

如果您对多步骤解决方案没问题,可以

  1. 右键单击更改列表中的文件,然后选择“diff against have revision”。
  2. 在差异窗口中,在“编辑”下选择“编辑右/左窗格”(无论你是哪一方面) 上)。
  3. 复制原件的内容并将其粘贴到已编辑的工作区版本
  4. 保存文件。
  5. 您的文件现在没有任何更改,并且会在同一个更改列表中签出。

答案 2 :(得分:3)

使用命令行,可以分三个阶段完成。如果您使用的是Windows,我强烈建议使用unix环境,例如: cygwin(我使用过的那个。)

假设您的更改列表编号是XYZ,并且您已将文件搁置在其当前版本中(仅仅是为了它!)

步骤1:获取文件列表并将其放入临时文件中。

p4 describe XYZ | grep \/\/ | sed -e 's/\.\.\. //'| sed 's/#.*//'  > temp

第2步:还原更改列表中的所有文件

p4 revert -c XYZ //...

第3步:再次签出/编辑文件

cat temp | xargs p4 edit -c XYZ

我假设所有文件都处于编辑模式(即不是已打开的文件或已删除的文件)。

PS:删除临时,如果你挑剔:)

答案 3 :(得分:1)

我不相信即使从命令行也可以这样做,因为p4 sync(即使-f)明确排除了对打开文件的操作。

答案 4 :(得分:-1)

您正在寻找的功能是shelving。这将恢复文件,但在变更列表中保留一个搁置版本,您(或其他客户端上的其他人)可以在以后取消搁置。