Perforce 如何在客户端签出时使用p4触发器?

Perforce 如何在客户端签出时使用p4触发器?,perforce,Perforce,查看文档时,我找不到客户端锁定(签出)和解锁(恢复)文件的触发器。是否有类似于更改内容触发器的事件发生在上述阶段 我的目标是使用Webhook设置客户端活动的通知。我还研究了p4review.py,它看起来也不像是在签出/签入时触发的。提前感谢。您可以通过pre/post user-触发器对任意命令运行触发器: 请注意,这些操作是在单个命令级别执行的(例如,p4 lock,p4 revert),而不是在特定文件操作级别执行的(例如锁定文件或解锁文件),因此使用命令触发器捕获文件状态中的特定更改

查看文档时,我找不到客户端锁定(签出)和解锁(恢复)文件的触发器。是否有类似于
更改内容
触发器的事件发生在上述阶段


我的目标是使用Webhook设置客户端活动的通知。我还研究了p4review.py,它看起来也不像是在签出/签入时触发的。提前感谢。

您可以通过
pre/post user-
触发器对任意命令运行触发器:

请注意,这些操作是在单个命令级别执行的(例如,
p4 lock
p4 revert
),而不是在特定文件操作级别执行的(例如锁定文件或解锁文件),因此使用命令触发器捕获文件状态中的特定更改并不像使用提交触发器捕获提交那样简单

锁定文件(打开或“签出”文件的子集)为例,在以下情况下,文件可能被锁定

  • 用户运行
    p4 lock
    (显式锁定打开的文件)
  • 用户运行
    p4 submit
    (在开始时自动锁定文件)
在以下情况下,文件可能会被解锁:

  • 用户运行
    p4 unlock
    (解锁文件但保持打开状态)
  • 用户运行
    p4 revert
  • 用户运行
    p4 submit
    (一旦提交成功,将解锁文件)

还有“独占开”(<代码> +L>代码>文件),这构成了一种不同类型的锁(阻止其他打开而不是其他提交)。 另一种完全用于检测文件锁定状态变化的策略可能是刮取日志文件以更新

db.locks
表。跟踪日志比设置触发器要复杂得多,需要您对Perforce的数据库模式有深入的了解,但如果您能够清除这些障碍,那么它的优势是为您提供了一个可监控的单一真相来源,而不必对一系列不同的命令进行反向工程