如何从表单输入触发器获取 Stream 创建表单中'Branch files on creation'值的值?



我正在Helix Core Server上设置Perforce触发器,当用户提交要创建的流的表单时,它会在流创建表单上触发。我想验证用户选择的流的名称。我还想警告用户,如果他们决定不选择"在流创建时从父级分支文件"设置。

流创建表单示例

到目前为止,我已经设置了有效的触发器,目前可以验证流名称。但是,我找不到一种方法来获取"分支文件..."复选框的布尔值设置。

触发线:

check-stream-name form-save stream "python /p4/common/bin/triggers/check_stream_name_trigger.py %formfile%"

当触发时,我通过抓住"formfile"变量来获取所有表单字段,这给了我一个临时文件名,我可以读取并获取表单上大多数字段的值。但是"分支文件..."不显示字段值。

Stream: //TestDepot/devs/TestStream_dev
Update: 
Access: 
Owner:  me
Name:   TestStream_dev
Parent: //TestDepot/Mainlines/ShortStream
Type:   development
Description:
Created by me.
Options:    allsubmit unlocked toparent fromparent mergedown
Paths:
share ...

如何获取"分支文件..."的值触发器中的复选框?

不能,因为此值不是服务器上实际流规范的一部分。 当您在 P4V UI 中选中该框时,它将在保存规范后立即运行p4 populate命令(在表单触发器运行后(。 在执行该命令之前,服务器对此一无所知。

不幸的是,很难触发没有发生的事情,特别是如果你试图触发它在未来没有发生。一个有点复杂的解决方案可能是在流上有一个form-commit触发器,它会启动延迟检查以查看流创建后是否快速populate(即检查流的类型及其路径,等待至少几秒钟以留出时间进行p4 populate, 然后查看是否有应该存在但尚未存在的 Depot 文件(,然后可能会向用户发送一封后续电子邮件,让他们知道他们尚未填充流(这是操作方法(。

或者,您可以让该form-commit触发器运行populate(假设您希望始终使用其父级的头修订填充流 - 这实际上可能不是您想要全面强制实施的东西,因为它可能很有用基于早期修订的流(。

最新更新