目前,我只关心接收前钩子和接收后钩子,但如果能有一个可以并行执行的钩子的完整列表(如果有的话),那就更好了。
我之所以问这个问题,是因为知道你是否需要小心编写代码,以便可以运行多个实例,而不会相互影响,这很重要。
我认为钩子是为操纵存储库内部状态的操作而执行的,因此一次只能有一个“编写器”,如果有,例如。多个推送同时发生,它们被排队并按顺序处理。
但这只是我的猜测,我希望看到一些权威的答案。我在man githooks中看不到这个问题的答案,也不知道还能去哪里找(除了源代码)。
发布于 2013-09-11 03:56:00
预接收和更新钩子都是在git持有repo上的锁的时候运行的(这是必然的,因为git正在处理包文件,并且还没有更新引用)。所以这些都是自动互斥的。(即,只要有更新。如果没有更新,则什么也不会发生,因此问题就变得毫无意义了。)
因此,这些操作实际上可以与其他接收包操作竞争。
https://stackoverflow.com/questions/18722417
复制相似问题