Perforce不会从仓库中删除文件和文件夹

Perforce不会从仓库中删除文件和文件夹,perforce,delete-file,Perforce,Delete File,我有一个工作区,其中一些文件和文件夹被脱机删除。工作区将在车辆段一侧显示它们。无论我做什么,我都无法让它删除这些文件/文件夹。当我选择“markfordelete”时,会显示“文件不在客户端视图中”。我知道这一点。这就是为什么我想把他们从仓库里搬走 “协调脱机工作”选项变灰。不知道为什么 “从工作区删除”返回“不在客户端视图中的文件”或“未更新文件”,具体取决于其心情 我需要保留该区域中的其他文件夹,但我想清理仓库,以便只显示这些文件夹 如果我试着强制“获取最新版本”(我想是在线时复制然后删除)

我有一个工作区,其中一些文件和文件夹被脱机删除。工作区将在车辆段一侧显示它们。无论我做什么,我都无法让它删除这些文件/文件夹。当我选择“markfordelete”时,会显示“文件不在客户端视图中”。我知道这一点。这就是为什么我想把他们从仓库里搬走

“协调脱机工作”选项变灰。不知道为什么

“从工作区删除”返回“不在客户端视图中的文件”或“未更新文件”,具体取决于其心情

我需要保留该区域中的其他文件夹,但我想清理仓库,以便只显示这些文件夹

如果我试着强制“获取最新版本”(我想是在线时复制然后删除),它会显示“删除了11个文件”,但不会改变任何内容。我已刷新、退出并重新启动


我使用的是P4V(GUI版本)

您对只是离线删除文件的情况的描述是不准确的。如果文件不在您的客户端视图中,则表示您还具有:

  • 修改了你的客户端视图
  • 交换客户端工作区
  • 撤消您执行的任何一项操作,然后
    协调
    将看到丢失的文件并打开它们进行删除

    由于它们当前不在客户端视图中,因此工作区中已删除的文件与相应的仓库文件之间没有关联。每当您希望Perforce执行任何涉及工作区中文件的操作时,客户端视图都需要指定这些文件与仓库的关系

    (添加更多内容以考虑关于客户端规范被删除的评论,并且显然是使用不同的视图重新创建的,这很难告诉您如何从中恢复,因为我对之前/之后的状态一无所知,只知道某处有文件。不幸的是,不可能简单地撤消客户端规范删除,缺少检查点恢复,因为客户端规范不是版本控制的对象。)

    如果删除了客户端规范,则先前同步到客户端的记录会随之删除(下次如果工作区移动,则只需更新根目录),因此即使使用相同的视图重新创建客户端,协调也无法工作

    要从P4V中删除文件,您需要同步这些文件,但听起来您还有一个额外的问题,即使用不正确的视图重新创建了客户端规范,因此您甚至无法同步这些文件。以下是您需要执行的操作:

  • 将站点路径添加到客户端视图
  • 将文件同步到您的工作区
  • 标记为删除
  • 提交
  • 从命令行同步是可选的,因此您可以执行以下步骤删除客户端(再次),重新创建客户端(这次使用完全打开的默认视图),打开要删除的文件,然后提交:

    p4 client -d YOUR_CLIENT
    p4 client -o | p4 client -i
    p4 delete -v //depot/files/to/delete/...  
    p4 submit
    

    如果您有一个spec仓库,您可以使用它将工作空间恢复到视图更改之前的某个点

    有关使用spec仓库的更多信息,请参见:
    Performce无法识别脱机删除的文件,您必须先获取最新版本,并选中“Fore Operation”(预操作)。 现在,您将在仓库中看到所有已删除的文件。 如果在depot中仍然看不到删除文件,请备份整个文件夹。现在删除文件夹,并在选中“Fore Operation”的情况下执行getlatest。 现在,您肯定会在仓库下看到已删除的文件。
    现在,您应该对要从depot删除的文件执行“标记为删除”。

    原始客户端驱动器的根字母已更改。工作区将不会更新为新的驱动器字母。我删除了旧工作区,并创建了一个指向正确驱动器字母的新工作区(与旧工作区名称相同)。站点上列出的文件和文件夹不在客户端上。文件图标中有一个x。我所做的任何操作都不会将其从列表中删除。在根级别执行协调仅显示客户端上不在站点上的文件(我不想将其移过)。它不会在站点端显示任何不在客户端的内容。这是一个非常基本的配置问题(同样,这与客户端视图的设置有关)但是,如果我看不到您配置的细节,我就无法告诉您要更改的具体内容。在SO评论线程上来回切换是很困难的,因此我建议在forums.perforce.com上发布(我经常帮助人们调试类似的内容)。包括P4V的屏幕截图和您当前的客户端视图,这将是一个简单的修复。tl;dr:当您删除并重新创建您的客户端时,您没有从旧客户端保留视图。如果您没有旧客户端的副本,最简单的修复方法是让某人查看您所拥有的,并告诉您它应该是什么样子。:)