对于每个http请求,服务器端运行一个单独的进程git-http-backend

当多个客户端推送到同一个远程存储库时,它将如何处理并发问题?

例如,它是否创建锁定文件,名称是什么?

注意:远程存储库是裸露的。

最佳答案

与通过SSH调用的方式相同-请参见update_ref function in refs.c。锁定机制的实际实现位于lock_file function in lockfile.c中,是的,它在其中创建了一个.lock文件。在后台,这是通过O_EXCLopen()选项完成的。

10-08 02:12