如何删除通过 perforce 添加到我的 AWS EC2 实例但似乎已被 perforce 遗忘的文件?

问题描述 投票:0回答:1

简单来说: 我的 EC2 实例中有一些文件需要删除。它们是由 p4 添加的,但 p4 似乎并不知道它们在仓库中。因此,我不确定如何协调本地工作与仓库的内容。

事情是如何发生的:

  • 我在 AWS EC2 中使用 Helix Core 的模板设置了一台新服务器,意识到我需要启动 p4 并运行一个本地/手动备份已无法满足的项目。
  • 软件仓库启动并运行后,我通过 p4 连接到它并创建了一个工作区。
  • 由于这是一个包含许多文件的现有项目,因此我需要在协调本地工作后向仓库进行初始提交。
  • 这可以理解,这花了很长时间,同时我继续使用计算机进行不相关的工作。期间,电脑死机了。 (这项不相关的工作涉及对一个不相关的问题进行故障排除,当我拔掉外围设备时,该问题最终导致蓝屏崩溃。)
  • 这突然中断了提交,而不是适当的取消。
  • 当我重新上线时,更改列表在 p4 中仍然可用。我甘心保险起见,什么也没发现,我就去重新开始漫长的提交。
  • 当我尝试提交时,我被警告驱动器上没有足够的空间。当我制作该驱动器时,所需空间是其所需空间的两倍,因此我使用 EC2 的会话管理器进行连接并查看磁盘空间。果然,消耗了大量存储空间,就好像我提交的许多文件实际上已经上传并且现在正在占用空间。
  • 但是 p4 没有看到这一点,协调也没有帮助。

我的技能水平: 虽然我在游戏领域工作了多年,并且熟悉在项目中使用 p4,但我的大部分经验都集中在设计/艺术方面,而工程对我来说是陌生的。即便如此,我的大部分工程经验都是游戏逻辑,而不是服务器基础设施。我必须按照教程才能在 AWS 中进行设置。

我的想法:

  1. 使用“p4 size -s //depot/directory/...”,我被告知有 0 个文件和 0 个字节。但同样,如果我使用会话管理器检查 EC2 本身,我可以在仓库中看到在提交工作之前不存在的超过 100GB 的内存。
  2. 如果我找不到更好的方法,我可能不得不在尝试之前获取设置后拍摄的第一个快照,并找出如何将软件仓库恢复到该状态。但我看到的关于如何执行此操作的教程和信息似乎更多的是用快照完全替换实例/卷,而不是重置它,这让我对破坏我获得的 Helix Core 模板中的某些内容感到紧张并破坏 p4 与服务器通信的方式。再说一次,这对我来说都是非常新的,并且有太多常见和共享的术语,谷歌搜索只能让我到目前为止。
amazon-web-services amazon-ec2 submit perforce depot
1个回答
0
投票

正如 Samwise 提到的,p4 存储是解决这个问题的最安全方法。

一些可能有帮助的额外信息:

  1. 在 AWS 模板上,仓库文件存储在
    /p4/1/depots/DEPOTNAME
    中,因此您可以进入那里检查那些孤立的文件。
  2. p4 storage -d
    默认情况下仅删除至少 24 小时前(86400 秒)扫描的孤立文件,但这可以被覆盖(见下文)

在此处检查 efp4 存储选项:https://www.perforce.com/manuals/cmdref/Content/CmdRef/p4_storage.html#Options

尝试以下步骤,看看是否有帮助:

  1. 开始扫描:
    p4 storage -l start //DEPOTNAME/...
  2. 检查状态直至完成:
    p4 storage -l status //DEPOTNAME/...
  3. 使用 -D 标志运行 -d 以更改 24 小时限制:
    p4 storage -d -D 60 -y //DEPOTNAME/...

    -D 将扫描后的时间限制设置为 60 秒。如果需要,您可以使用不同的秒数。
    这将显示要删除的文件,但在您使用 -y 再次运行之前不会删除。
  4. 最后,使用 -y 运行:
    p4 storage -d -D 60 -y //DEPOTNAME/...

您应该看到所有文件都被删除的输出以及确认它们已被删除的消息。

© www.soinside.com 2019 - 2024. All rights reserved.