P4 更改列表中的文件附件

File Attachment inside P4 Changelists

我正在寻找一种将文件附件(如屏幕截图)嵌入到 Perforce 更改列表中的方法。我希望(但并不乐观)P4 中有一种方法可以实际执行此操作,可能是通过插件。

如果没有,我将不得不考虑自己编写一个插件(有任何指示吗?),或者我必须为 P4 签入制作一个包装器,该包装器还 uploads/submits 附件,然后链接它通过 CL 内部的标识符附加到 CL。 (然后我需要一个工具来关联和显示两者)。

要添加更多信息:我正在通过我正在编写的 P4API 机器人与 P4 服务器连接。机器人会爬过每次签到并收集它获得的数据以生成报告。 IE。它将提交与通知任务的实际功能规范相关联,生成该任务的进度历史记录等。在这种情况下,将额外的元数据附加到 CL(如屏幕截图)很有用,因为这些附件随后可以在数据挖掘——它们可以增强我生成的报告。 我可以通过一个包装程序来防止 bad/rampant 元数据附件,该程序用于生成我们所有 P4 提交的 95%,无论如何(它有自己的对话框)。但是当 P4 CL 规范似乎只有文本可用时,我必须弄清楚如何在 P4 中呈现所有数据。

我认为没有任何(简单的)方法可以满足您的要求。 changelist is "an atomic change transaction". There is very little meta-data with them. The P4 command reference for p4 change 列出了允许您执行的所有操作,并且没有添加任意附件。

您始终可以在 Perforce forums 中打开功能请求。

回应编辑

看起来这实际上只是您面临的更大问题的一个实例:管理您的仓库项目及其变更列表的元数据。我建议您将此要求用作在您的组织中进行一些更大的流程更改的驱动力。如果您有大量基于项目自动分析生成的数据,最好创建一个适当的数据库来组织所有数据。您的提交包装器可以处理将屏幕截图(或任何其他元数据)放入数据库中,并使用指示在数据库中的何处查找附件的标签来注释更改列表描述。

全面的数据库解决方案将使您能够以比当前更有条理的方式将附件、更改列表和其他数据相互关联以及与其他项目资源关联。

原始回复

如果您决定编写一个插件来处理没有数据库的任务,我建议的方法如下:

  1. 将所有团队成员都可以访问的共享网络驱动器或目录指定为 "perforce attachment dump"。用户应该对该区域具有写入权限。
  2. 使用更改列表描述字段创建一个标签来命名应附加的文件。例如,"Attach: file_name.jpg".
  3. 您的用户使用插件导航到本地文件,插件会将其复制到转储驱动器并将标签添加到描述中。该插件应该强制执行一些命名方案以使文件易于查找。也许将更改列表编号附加到文件基本名称?或者为每个更改列表创建一个文件夹?
  4. 使用服务器端预提交触发器和脚本来扫描提交的更改列表描述中的标签,并从附件转储中检索此文件。如果找不到文件,它可能应该拒​​绝带有标签的更改列表。
  5. 服务器端脚本应将文件移动到对用户只读 的共享驱动器。这样一来,如果您想查看五个月前的更改列表的附件,您可以确定它仍然可用。
  6. 让您的插件能够从开发人员的本地计算机(在 P4 和 P4V 中)打开只读共享驱动器上的附件。