假设我有一个post-merge
脚本,它也存储在存储库中的其他位置。我希望钩子能够升级到最新版本。
为什么呢?这背后的主要原因是,只需一次推送就可以部署钩子脚本,而无需访问多个服务器并在每台服务器上手动部署代码。 Hook脚本依赖于db模式,可能会发生变化。
在这种情况下,锁定会放在.git/hooks/post-merge
上,因此无法轻易覆盖。
如果我使用另一个钩子来更新脚本,例如pre-merge
,它会成功,但pre-merge
还不知道最新的post-merge
脚本,那时它会是一个承诺。
对这个问题有任何想法吗?
答案 0 :(得分:1)
好。找到了可能的治疗方法
在脚本结束时,打开一个将执行覆盖作业的独立进程。将它传递给post-merge
的PID,以便它可以不断检查post-merge
脚本是否仍在运行。如果没有,它会将脚本更新为最新版本并退出。