Perforce 更改提交触发器在客户端上运行脚本

Perforce 更改提交触发器在客户端上运行脚本

我一直在查看各种 StackExchange 帖子、Perforce 论坛条目等,以寻找以下问题的解决方案,并非常感谢您的指导和经验!

问题描述

我希望能够发起Perforce 服务器上的一系列验证步骤客户端在允许提交变更列表之前,对变更列表中打开的文件进行检查。

例如,我希望确保如果打开一个文件进行添加、编辑或删除作为变更列表的一部分,则特定的相关文件将根据相应文件的条件矩阵进行适当处理:

  • 正在打开相应文件以进行添加/编辑/删除
  • 相应文件在磁盘上存在与不在磁盘上存在
  • 对应文件存在于仓库中与不存在于仓库中
  • 相对于仓库文件,相应文件已被更改或未更改

这些验证步骤必须在 Perforce 服务器接受提交之前启动。此外,验证必须在客户端执行,因为我必须能够协调离线工作并将其副本保存在客户端磁盘上。

成分

  • Perforce 2017.2 服务器
  • MacOS 和 Windows 计算机提交到不同的分支

初步尝试

  • 最初的设计是严格的客户端自定义工具,但这并不理想,因为这会改变用户熟悉的流程,而且我还必须实现自定义 GUI。

  • 在其他方法中,我考虑过在 2017.2 中创建触发器;然而,即使我使用更改内容触发服务器上所有可用的变更列表文件,我将无法正确执行验证和补救步骤。

  • 另一种可能性是使用变更提交触发器并使用2017.2 中的触发脚本变量获取客户端的 IP、主机名、客户端的当前工作目录等,以便您可以在服务器上运行脚本,尝试远程连接到客户端的计算机。但是,在客户端的计算机上运行任何脚本,特别是在其本地工作区上操作都需要凭证,而这些凭证很可能无法获得。

期望方法

我很想在 Perforce 服务器上使用更改提交触发器来启动客户端计算机上的脚本/捆绑可执行文件,以在其工作区上执行 p4 操作来完成验证步骤。但是,我发现的参考资料(尽管是几年前的)表明这是不可能的:

再次感谢您的阅读和帮助!

编辑:我发帖于堆栈溢出看看我能否从更广泛的受众那里获得一些见解:D

相关内容