P4 触发器:我可以获得更改列表编号并且仍然可以选择还原吗?
P4 triggers: Can I Get Changelist Number And Still Have Option To Revert?
我正在尝试编写一个 P4 触发器,在用户提交时将更改列表编号发送到下游报告工具。据我了解,我需要使用 change-commit
事件来获取最终的更改列表编号。如果 p4 服务器必须更改它,change-submit
似乎无法访问更改的更改列表编号 ("The Perforce service might renumber a changelist when you submit it, depending on other users' activities")
但是,如果我无法访问下游报告工具(由于暂时的网络问题),我也想恢复更改列表。看来 change-commit
来不及了。如果我的触发器在此处使用 change-commit
returns 非零值,则触发器失败,但更改列表仍会提交。
有没有办法结合这两个要求
到达更改提交触发器后,更改已完全提交,所以不能,此时您不能停止提交过程。
坦率地说,仅仅因为报告工具不可用而停止提交似乎是对小问题的极端反应。
如果提交的唯一问题是您无法访问报告服务,也许您可以在本地队列中记录更改列表编号,并有一个重试机制,稍后再次尝试通知该工具.
这将使这两个工具的耦合度降低。
一个简单的实现是使用 p4 counter
在 Perforce counters
table 中记录 "highest submitted changelist number successfully sent to the reporting tool",然后每次提交更改时,检查该计数器,并发送 所有 自您上次成功联系报告工具以来提交的更改列表编号。
我正在尝试编写一个 P4 触发器,在用户提交时将更改列表编号发送到下游报告工具。据我了解,我需要使用 change-commit
事件来获取最终的更改列表编号。如果 p4 服务器必须更改它,change-submit
似乎无法访问更改的更改列表编号 ("The Perforce service might renumber a changelist when you submit it, depending on other users' activities")
但是,如果我无法访问下游报告工具(由于暂时的网络问题),我也想恢复更改列表。看来 change-commit
来不及了。如果我的触发器在此处使用 change-commit
returns 非零值,则触发器失败,但更改列表仍会提交。
有没有办法结合这两个要求
到达更改提交触发器后,更改已完全提交,所以不能,此时您不能停止提交过程。
坦率地说,仅仅因为报告工具不可用而停止提交似乎是对小问题的极端反应。
如果提交的唯一问题是您无法访问报告服务,也许您可以在本地队列中记录更改列表编号,并有一个重试机制,稍后再次尝试通知该工具.
这将使这两个工具的耦合度降低。
一个简单的实现是使用 p4 counter
在 Perforce counters
table 中记录 "highest submitted changelist number successfully sent to the reporting tool",然后每次提交更改时,检查该计数器,并发送 所有 自您上次成功联系报告工具以来提交的更改列表编号。