我在Windows中运行并且有一个调用python 3脚本的git post-receive挂钩。这个Python脚本做了很多事情。其中一个是输出运行git hook的用户名。这个用户名是MACHINENAME $(机器名称是MACHINENAME),我认为是网络服务帐户,但我可能在这里错了。之后调用subprocess.run来执行对ClearCase命令clearfsimport的调用。请注意,我使用clearfsimport' nsetevent'允许其他用户签到此视图的交换机,但这似乎不适用于网络服务帐户。
如果我直接以ClearCase视图所有者的身份运行python命令,则clearfsimport会成功。如果我以另一个用户身份运行它,则clearfsimport会成功。但是,如果我将它作为git钩子运行,它将失败,并显示以下错误消息:
subprocess.CalledProcessError:Command' [' clearfsimport',' -recurse',' -nsetevent',' -rmname&#39 ;,' -comment',"这是我的评论",' / path / to / clearfsimport / source',' / path / to / ClearCase /视图']'返回非零退出状态1
如何让这个git hook正常工作?如果我必须调整python,git,ClearCase或Windows,或者某种组合,这没关系。
答案 0 :(得分:0)
由于git钩子在git bash中自行执行,检查是否会影响参数传递给windows executable clearfsimport
的方式(特别是路径)
一个简单的测试:将clearfsimport
调用包装在.bat
脚本中,并在该脚本中设置源和目标路径,然后让你的git hook调用所述脚本。