2013-03-21 52 views
14

我是新来的Perforce,说实话,我讨厌它。 我在我的c:\ workspaces \ perforce目录中有大约20个文件,我选择了所有这些文件并点击删除键。 在我删除它们之前,它们都已经过检查。 我一直在试图弄清楚如何让他们回来(Perforce是如此不直观),但没有什么比我更像一个n00b。
如何从Perforce获取最新版本的目录?我已经删除了我目录中的所有文件。我怎样才能让他们回来?

回答

18

您需要执行强制同步。

在命令行:

$> p4 sync -f 

在P4V GUI:

  1. 目录上单击鼠标右键,更新
  2. 选择 '获取修订'
  3. 在对话框中,检查'强制操作'
  4. 单击'获取修订版'
9

perforce服务器会跟踪您上次提取哪些文件。这样做是为了使下一个sync仅引入自上次同步以来发生更改的文件,而不是所有文件。

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

即使客户端已经有 文件并覆盖任何可写文件,-f标志强制重新同步。这个标志没有 影响打开的文件。

如果您使用命令行客户端,您可以从您要同步跟进的目录中运行以下命令:

p4 sync -f ... 

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

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

p4 opened ... 

如果在上面的列表中列出的任何文件,该文件已经删除,以及,你应该在运行sync -f之前恢复它们。

p4 revert <FILE1> <FILE2> 
p4 sync -f ... 

如果您使用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. 

要看看使用p4v打开的文件列表中,你将不得不看着你的列表等待更改列表。如果您没有将文件放入任何speficic更改列表中,您应该查看default更改列表。右键单击您在那里看到的文件,然后选择Revert

1

一种替代方案:

p4 reconcile p4 revert //...

+0

这个GUI版本对我来说是最好的解决方案。我右键单击父版本并将删除对帐到临时更改列表,然后恢复该更改列表。 – 2015-03-06 20:32:29

4
,如果你有文件

签出,然后将其删除。您需要在获取最新版本之前恢复(p4回复-a // ...)文件夹(p4 sync -f)。

2

如果你不关心老客户,一个解决办法是将拉低新的客户端:

p4 newclient 
p4 sync 

如果你希望客户端具有相同的名称,你可以做一个强制同步如其他人所说的:

p4 sync -f 

如果你希望客户端具有相同的名称,但你的目录不再认定为P4的工作区,你将需要删除的客户端,然后重新创建它。

p4 -c <client_name> client -d <client_name> 
p4 newclient 
0

在我来说,我什么都试过,我不能让我的所有文件恢复,所以我试图删除它们,然后我不能让所有的人都回来了。我重新启动了我的电脑,并尝试了许多在线的解决方案。最终,我的问题通过以下一种或所有方式得以解决:升级到最新的P4V应用程序,以提升的权限运行应用程序,并在强制获得最新版本后进入午餐。

如果你浪费了一天的一半时间。你可能想尝试以上。

相关问题