我正在 Helix Core 服务器上设置一个 Perforce 触发器,当用户提交要创建流的表单时,该触发器会在流创建表单上触发。我想验证用户选择的流的名称。如果用户决定不选择“在流创建时从父级分支文件”设置,我还想警告用户。
到目前为止,我已经设置了可以运行的触发器,并且当前可以验证流名称。但是,我无法找到一种方法来获取“分支文件...”设置复选框的 bool 值。
触发线:
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
,然后查看是否存在应该存在但尚未存在的仓库文件),然后可能会向用户发送一封后续电子邮件,让他们知道他们尚未填充流(以下是操作方法)。
或者,您可以让 form-commit
触发器运行 populate
(假设您希望始终使用头部填充流其父版本的修订版——但这实际上可能不是您想要全面强制执行的内容,因为创建基于早期修订版的流可能很有用)。
关于python - 如何从表单输入触发器中获取流创建表单中的 'Branch files on creation' 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57706919/