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

时间:2013-03-21 15:46:24

标签: perforce

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

8 个答案:

答案 0 :(得分:22)

你需要强制同步。

在命令行上:

$> p4 sync -f

在P4V GUI中:

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

答案 1 :(得分: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查看已打开文件的列表,您必须查看待处理更改列表的列表。如果您没有将文件放在任何特定的更改列表中,您应该查看default更改列表。右键单击您之前看到的文件,然后选择Revert

答案 2 :(得分:5)

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

答案 3 :(得分:2)

替代方案:

p4 reconcile p4 revert //...

答案 4 :(得分:2)

如果您不关心旧客户,一个解决方案就是关闭新客户端:

p4 newclient
p4 sync

如果您希望客户端具有相同的名称,您可以像其他人提到的那样进行强制同步:

p4 sync -f

如果您希望客户端具有相同的名称,但您的目录不再被识别为p4工作区,则需要删除该客户端,然后重新创建它。

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

答案 5 :(得分:0)

在我的情况下,我尝试了所有内容,但我无法将所有文件都还原,因此我尝试删除它们,然后我无法将所有文件都还原。我重新启动了我的电脑,并在网上尝试了很多解决方案。最后,我的问题通过以下一个或所有问题得到解决:升级到最新的P4V应用程序,使用提升的权限运行应用程序,并在强制获取最新状态后去吃午餐。

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

答案 6 :(得分:0)

  

我已删除目录中的所有文件。我该如何找回他们?

我偶然发现的一个问题是,如果删除目录,则不能仅使用p4 sync -f来取回它。我想要一个完整的目录干净版本,所以我做了:

rm -rf directory1

但是,当我在其上执行p4 sync -f directory1时,它会吐出:

directory1 - no such file(s).

我发现有效的方法是首先在目录内恢复文件

p4 sync -f directory1/some-file

您将必须知道丢失目录内可以使用的文件之一的名称:

p4 files //depot/some/path/directory1/\*

一旦获得文件名之一,请执行:

p4 sync -f directory1/some-file

这应该创建directory1目录。然后,您可以在创建的目录中进行完全同步:

cd directory1
p4 sync -f ...

希望这对其他人有帮助。

答案 7 :(得分:0)

  1. 右键单击父目录。
  2. 在上下文菜单中单击“协调”。
    • 创建一个新的更改列表。
  3. 右键单击更改列表。
  4. 还原更改。