我正在尝试编写一个P4触发器,在用户提交时将更改列表编号发送到下游报告工具。据我了解,我需要使用change-commit
事件来获取最终的更改列表编号。如果p4服务器必须更改"The Perforce service might renumber a changelist when you submit it, depending on other users' activities"),change-submit
似乎无法访问更改的更改列表编号
但是,如果我无法访问下游报告工具(由于网络短暂问题),我还想恢复更改列表。似乎change-commit
为时已晚。如果我的change-commit
触发器在此返回非零值,则触发器失败,但仍会提交更改列表。
有没有办法合并这两个要求
答案 0 :(得分:1)
进入更改提交触发器后,更改已完全提交,所以不,您不能在此时暂停提交过程。
坦率地说,仅仅因为报告工具不可用而停止提交似乎是对一个小问题的极端回应。
如果提交的唯一问题是您无法访问报告服务,可能您可以在本地将更改列表编号记录在队列中,并且具有重试机制,以便稍后再次尝试通知该工具。 / p>
这会使两个工具的耦合程度降低。
一个简单的实现是使用counters
在Perforce p4 counter
表中记录“成功发送到报告工具的最高提交的更改列表编号”,然后每次提交更改时,检查该计数器,并发送所有自您上次成功联系报告工具后提交的更改列表编号。