7

在 Perforce P4V 中,我在挂起的更改列表中有一个文件。我想恢复文件的内容,但将文件保留在更改列表中。我怎样才能做到这一点?

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

4

5 回答 5

4

This is not readily possible, as other respondents noted.

If you are okay with a multi-step solution, you could

  1. Right-click the file in the changelist and choose "diff against have revision".
  2. In the diff window, under "Edit" choose "Edit right/left pane" (whichever side yours is on).
  3. Copy the contents of the original and paste them over your edited workspace version
  4. Save the file.

Your file now has no changes, and it is checked out in the same changelist.

于 2013-08-14T23:19:55.323 回答
4

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

于 2013-06-18T20:20:42.490 回答
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:删除临时,如果你很挑剔:)

于 2016-10-25T18:43:08.047 回答
1

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

于 2013-06-18T10:50:45.033 回答
-2

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

于 2013-06-18T12:19:59.137 回答