在 Perforce P4V 中,我在挂起的更改列表中有一个文件。我想恢复文件的内容,但将文件保留在更改列表中。我怎样才能做到这一点?
我尝试了 Perforce 的revert
命令,但这会将文件从更改列表中删除。
This is not readily possible, as other respondents noted.
If you are okay with a multi-step solution, you could
Your file now has no changes, and it is checked out in the same changelist.
完成此操作的唯一方法(没有将原始内容复制/粘贴回此文件,但这似乎很愚蠢)是还原并重新打开它。搁置本身不会还原文件。“搁置和恢复”的概念仍然是两个操作。
使用命令行,可以分三个阶段完成。如果您使用的是 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:删除临时,如果你很挑剔:)
我不相信这可以做到,即使是从命令行,因为p4 sync
(即使使用-f
)明确排除对打开文件的操作。
您正在寻找的功能是搁置。这将恢复文件,但在更改列表中保留一个搁置的版本,您(或其他客户端上的其他人)可以稍后取消搁置。