我删除了目录中的所有文件.我怎样才能让他们回来?

Pin*_*ing 17 perforce

我是Perforce的新手,说实话,我讨厌它.我在c:\ workspaces\perforce目录中有大约20个文件,我选择了所有文件并点击删除键.在删除它们之前,它们都已签入.我一直在试着弄清楚如何让他们回来(Perforce太不直观了)但是没有什么能像我一样突出n00b.
如何将最新修订版本从Perforce返回到目录中?

dwi*_*kle 22

你需要强制同步.

在命令行上:

$> p4 sync -f
Run Code Online (Sandbox Code Playgroud)

在P4V GUI中:

  1. 右键单击要更新的目录
  2. 选择"获取修订"
  3. 在对话框中,选中"强制操作"
  4. 点击"获取修订"


Tux*_*ude 9

perforce服务器会跟踪您上次提取的文件.这样做是为了使下一次sync只引入自上次同步以来发生变化的文件,而不是再次引入所有文件.

要覆盖此行为,您需要使用该-f选项.

即使客户端已经拥有该文件,-f标志也会强制重新同步,并覆盖任何可写文件.此标志不会影响打开的文件.

如果您使用的是命令行客户端,则可以从要同步的目录运行此命令:

p4 sync -f ...
Run Code Online (Sandbox Code Playgroud)

您可能还想检查opened文件列表,因为sync -f不会引入与这些文件相对应的更改(即使您已删除它们).

此命令应列出所有打开的文件:

p4 opened ...
Run Code Online (Sandbox Code Playgroud)

如果上面的列表中列出了您已删除的文件,则应在运行前将其还原sync -f.

p4 revert <FILE1> <FILE2>
p4 sync -f ...
Run Code Online (Sandbox Code Playgroud)

如果您正在使用p4v,您可以按照dwinkle提到的步骤操作:

1. Right click the folder in your workspace
2. Choose `Get Revision` in the context menu.
3. Choose `Get Latest revision`
4. Check `Force Operation (replace file even if you already have the revision specified)
5. Click on `Get Revision` button to fetch the files.
Run Code Online (Sandbox Code Playgroud)

要查看已打开文件的列表p4v,您必须查看待处理更改列表的列表.default如果您没有将文件放在任何特定的更改列表中,您应该查看更改列表.右键单击您之前删除的文件,然后选择Revert.


res*_*way 5

如果您签出了文件,然后删除.在获得最新强制(p4 sync -f)之前,您需要还原(p4 revert -a // ...)文件夹.