Perforce 后用户编辑触发器不起作用,用作用户前编辑
Posted
技术标签:
【中文标题】Perforce 后用户编辑触发器不起作用,用作用户前编辑【英文标题】:Perforce post-user-edit trigger not working, works as pre-user-edit 【发布时间】:2020-01-19 15:22:39 【问题描述】:我正在尝试创建用户编辑后触发器,以根据标记为编辑的文件显示警告消息。我想通过让触发器失败来做到这一点,然后客户端将显示失败消息。
我的触发器现在被分解为仅用于调试目的的裸打印语句。我在 python 中编写了触发器,它只是打印“Hello”然后返回 1(失败)以触发客户端显示触发器验证消息。
当触发器设置为用户前编辑时,这非常有效,我看到“TestTrigger”验证失败并且客户端显示“Hello”消息。但是,一旦我交换此触发器以运行后期编辑,我就会得到一个“”:验证失败。它没有正确列出我的触发器名称,也没有打印出我的“Hello”消息。
使用帖子触发器是否有任何细微差别?不确定我做错了什么。
这是我正在使用的示例:
触发器文件:
Triggers:
TestTrigger command post-user-edit "/usr/bin/python %//Path/To/triggerTest.py%"
触发器本身:
import sys
def run():
print "Hello"
return 1
if __name__ == "__main__":
sys.exit(run())
失败消息,敏感信息被涂黑
【问题讨论】:
【参考方案1】:不确定这是否是您遇到的实际问题,但您不需要返回失败;我什至不确定命令后触发器上的“失败”是什么意思,因为命令已经发生。 :)
C:\Perforce\test>p4 triggers -o | tail -n2
edit command post-user-edit "echo Edit!"
C:\Perforce\test>p4 edit foo
//stream/main/foo#4 - currently opened for edit
Edit!
由于您没有得到任何输出,我猜问题实际上是由于路径中的拼写错误或类似原因,触发器没有运行。服务器日志文件可能有线索。
【讨论】:
我同意触发器似乎并未真正运行。我不认为这是路径问题,因为我可以使用完全相同的触发线,只需将“post”更改为“pre”,触发器就会正确运行。我将尝试查看服务器日志以获取更多信息。 其他可能有助于缩小问题范围的尝试:将脚本更改为返回 0,尝试从命令行而不是 P4V 进行编辑以上是关于Perforce 后用户编辑触发器不起作用,用作用户前编辑的主要内容,如果未能解决你的问题,请参考以下文章